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 abig 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 Imotivatedthem 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

WhenI started learning programming, I initially thought that itisn't that hard. The more I work the more aware i am of that programmingis really hardand 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 alwaystakes longer than it should. As aReact Nativedeveloper, 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 ownboilerplateand 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 Appfor testers,Continuous Delivery, App Store and Play Store...The list goes on and setting up every of the things I listed abovedeserves 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 bestpart of a job as a developer iswriting 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 andsatisfactionof creating** something out of nothing. This is why I love what I do. **Unfortunatelythis part of a job is actually around30%to50%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 whatI initially thought, but the reality is that it's a lot of different things too.

Iunderstandnow that the programming skill is more about** solving problems** than writing as much code as I can.  It's aconstant learningnew tools everyday, it'ssetting up a project, it'sfixing the **unwantedcomputer 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 thisawarenesswill 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.