Different things I thought about programming

One of the things I thought

When I got into my first job as a developer I thought "why won’t everybody who works there like more than 5 years haven’t started their** own company** yet?". Why anybody haven’t started their own start-up or any project? I was wondering a while about it and then I realised that I this is the same thing as in other professions.

Not everybody wants to be an entrepreneur, not everyone wants to have his/hers own product or a service and that’s ok. I talked to some of people in the industry and a lot of them just treat this job as a standard job, a way to get money for other things they like to do and this is great too. I just see this different, because I came from a boring old office world of Excel calculations...

I just see programming as a big opportunity, a great tool that can help to make one of my visions a reality and have a real impact on the world. I think that is one of my realest goals, to have a a significant impact on some people. I am glad that already a few of you have said to me that I motivated them to get into this world of programming. This is amazing for me and around 2 years ago when I started learning I** never thought** something like this may happen.


Programming is hard

When I started learning programming, I initially thought that it isn't that hard. The more I work the more aware i am of that programming is really hard and I understand why programmers are getting paid well. I thought it's easier than it actually is. I don't know why I thought this way, maybe because I liked it from the beginning? The brain stretch I missed in my last job was an amazing think, I felt that I am thinking clearer everyday.

At the beginning of my learning, my general knowledge of concepts was quite ok, but there's a long long way between this and actually mastering a certain programming skill. I feel like  I just learned quite quickly basic concepts and the progress was fast. I also hated my previous job badly so I had an enormous motivation to learn every day.

Also i noticed that on Fridays usually my mind is tired from all week of breaking stuff, fixing it and breaking again(short form: coding). When I was learning after my office job, I never thought it can happen, because I haven't done so much brain stretching. Programming may be exhausting in a way that any of my previous jobs hasn't been for me.


Initial estimations are always wrong

So I am more aware now, development takes time and I should always multiply my initial estimations by 2 or 3. It's just the way it is.  Everyday I understand more what the "fight with the machines" actually is. I now am aware that sometimes developing a seemingly easy task may take a long time. I learned that the computers just don't want to cooperate like they were told to sometimes and sometimes it just seem that computers and it's programs have a different opinion on what they want to do.


Project setup

I think that project setup is always an underestimated part of my job. It always takes longer than it should. As a React Native developer, there's always a lot of to set up when starting a new project. In React Native, before starting developing an application, there have to be chosen a few main libraries to start a new project. That's why I created my own boilerplate and now I don't have to set up Navigation and State Management when starting a new project. It always saves times - for newbie developers probably 1 or 2 days of initial development time, which is a lot of time, depending on how much time a day for it.

Besides strictly coding stuff, there also a lot of things to set up for a professional project - Continuous Integration, Testing Environment, Hockey App for testers, Continuous Delivery, App Store and Play Store...The list goes on and setting up every of the things I listed above deserves a different article. I'll try to explain the best I can in the future articles about setting those when I'll start developing my app.


I think

The best part of a job as a developer is writing code. Implementing what you can see in the design. Giving a life to stateful photos and design files, translating every element into working application. Wether it's a Web Development or Mobile Development, this is the best part of the job. There's an excitement and satisfaction of creating** something out of nothing. This is why I love what I do. **Unfortunately this part of a job is actually around 30% to 50% of what I do every day.

A lot of people, who want to start a career in programming think that it's a lot of writing code and building things. This is what I initially thought, but the reality is that it's a lot of different things too.

I understand now that the programming skill is more about** solving problems** than writing as much code as I can.  It's a constant learning new tools everyday, it's setting up a project, it's fixing the **unwanted computer issues, because it doesn't work like it should and **many more...

After more than almost a year of working as a professional programmer I learned a ton about those stuff, but I know that I still haven't encountered a lot of problems which I will in the future and there's a lot to learn.

I am more aware now of what programming really is than I was when I was starting and I am pretty sure that this awareness will grow with the experience even more. That said, I still really like this job and I believe it's one of the most fulfilling things I have done in my entire life.