Recently, I’ve followed closely a very interesting discussion. I’d like to share it with you today. It basically involved a process of becoming a developer, encouraging others to learn programming and a passion to coding.

- Guys, my friend asked me how he can encourage his young brother (~16yo) to start learning programming. Of course you can’t force someone to do that, but maybe there is a way to raise curiosity?

- Is you friend a programmer?

- No, he’s not a programmer. He was interested in computer science in the past. He works as a accountant.

- Why does he want him to start learning programming?

- He belives that his brother is smart but lazy and he’s trying to turn him on to computers.

- Ok, basicly, he needs somebody to show him the excitement.

Why do people want to learn programming?

The discussion was so interesting that even touched upon motivation to become a software developer.

I won’t mention here about obvious things like passion to programming itself which is the most important reason to do it. Many people are programmers because of their spirit, willingness to learn and desire to create and build things from these simple to the most complex ones.

Instead, I will focus on other, more common reasons, that lead to many software failures and poor developers. They are the money and the popularity.

How much money do you make programming?

This is a very common Reddit or StackExchange question. Many newbies, who are at the very beginning of their career path and about to choose the right college, continuously ask this question. They have heard somewhere or read in one of these “top-paid jobs” rankings, that programming is the best-paid occupation these days. They follow the money and don’t understand that programming is not for everyone. Programming is something more than finishing some studies and start working to earn money.

If you know programming, you will get a job

Programming is extremely popular these days. People start Computer Science studies because many others do the same. People learn software development because they have heard the hype: “employers look for developers, there’s a job for everyone!”. They fall into a trap of an insane market demand. More and more people are needed in the industry. Employers offer BootCamps to teach and hire coders. They forget that a software house is not a manufactory.

Software development is not manufacturing

It’s not a surprise that managers want software development to be like manufacturing.

In the so-called software factory, the employees are specialists. They sit at their place in the assembly line, fastening Ruby components together

or rounding the rough edges of a Rails application on their software lathes. Software components move down the line, and they test and stamp them, in the same way, each day. Web designers design web applications. JavaScript coders code in JavaScript. The world is very clean and compartmentalized.

Unfortunately, the manufacturing analogy doesn’t work. A software is at

least as malleable as software requirements. Things change in business,

and business people know that software is soft and can be changed to

meet those requirements. This means architecture, designs, code, and

tests must all be created and revised in a fashion more agile than the leanest manufacturing processes can provide.

Programming is not just coding

Many times I see people who think that watching some YouTube tutorial or reading “Getting started” guide is enough to become a developer. They don’t know that programming is not just about the code. It’s paradoxically only a minor thing! The most important is to understand the concepts, not only learn a syntax. Programmers should understand the core concepts like object orientation, functional patterns, relational databases foundations, software architecture patterns, and sometimes even memory management and structure.

I also wrote about many issues of senior developers like lack of self-development and not learning enough. This also applies to young developers.

I see many times StackOverflow Driven Development when developers have no idea why and how their code works because they copy-pasted it from the web. And it’s not that rare. How many parts of your code did you found on the web and don’t understand how they work?

Once again, learning just a syntax is not enough. Without reading a book about concepts of programming and then about the language you are learning you won’t become a professional developer. Completing a BootCamp does not make you a programmer.

Finishing tutorial doesn’t make you a programmer

When you search on the web, you will find very quickly tons of websites offering tutorials and courses to learn programming. There are great resources like codeshool, codeacademy, lynda, udemy, udacity, coursera and so on.

They give you an illusion that you are a developer. They are great either at the very beginning when you only want to grasp basic concepts or when you are already an advanced programmer and just want to learn something else. They are not comprehensive in both cases because they don’t give you a real proficiency.

The fallacy of becoming a professional developer in one video is so common these days that very often developers put in their CVs some skill they know just from one tutorial or online course.

Subscribe to get the latest content immediately

https://tinyletter.com/KamilLelonek

Summary

I hope you understand the issue. Not everyone can be a software developer. You will need self-denial, passion and spirit to learn. Enthusiasm is crucial when you want to do your job in the best way you can. You have to understand programming, underlying concepts, software architecture, and design patterns. A syntax is not enough unless you want to be a coding monkey.

You have to be passionate about your work if you want to be great at your work. If you don’t care, it will show.

Resources