• David Cruz

How start your career as a programmer?

Updated: Sep 29, 2019

Be a programmer or coder is a dream for many people, no matter which is your background or your goal, from earning honest wages and make programming as a living to develop a multimillionaire mobile app. There is no doubt, never before was a better time to start programming as there are many free tools, software and learning resources which it makes learning to code limitless and practically free, except, of course, the cost of having your own computer.

If you are reading these lines, there are many chances that you are overwhelming about how many programming languages out there, like Java, JavaScript, Kotlin, Swift, Objective-C, C, C++, C#... you name it, and you do not know what is the first steps you need to follow to do smart movements to achieve your dreams on programming. However everything becomes more clear when you realise you cannot learn every and each of those programming languages, and if you follow small simple steps you can become a programmer in no time and you can start to look for a job as entry-level or junior, or start to programming you own projects.

Please be aware, SIMPLE steps no mean EASY steps, so if you are here looking the easy way to be a coder you can stop now and do something else, do not waste your time because this is a career without an end and require a constant sacrifice of time and effort.

STEP 1: Ask to yourself, what kind of software/apps I want to develop?

This is the first and more critical step you will have, yes if you were expecting to go from easy to hard my friend obviously you were wrong.

What do you want to develop?, Android apps, iOS apps (for Apple devices), Websites, web apps,... whatever is you need to decide first, and the reason is simple. If you remember the first part of this article, there are many programming languages, well, each technology have their own programming language, some of those technologies share a common language, but that is another topic.

  • If you decide to do Android apps, you should learn Kotlin (You can learn Java, but Android it goes Kotlin first since 2019), and you learn how to work with Android Studio (which is the IDE most common use for Android).

  • If you decide to do iOS apps, you need yo learn Swift (Objective-C in the old days), and learn how to work with Xcode.

  • If you decide to do Websites, you need to learn JavaScript, CSS and HTML and then if you want to work efficiently, you have a huge range of frameworks like React.js, Angular.js, etc...

  • If you want to do backend, you can do it with practically every language, but the most used are Java, JavaScript, Go, Ruby, Python, just to name some and each and one of those has own frameworks.


No worries as you can still change your mind in the future, but if you focus and decide now, then will be easier. By default, it is required to practice one thing for 10,000 hours to be an expert, which is not the same as once you reach that time you can chill out and consider yourself a guru. Every day new versions are released is your duty to keep update and learn more as you eternal compromise with the code.

Step 2: Start from the most basic concepts

If you attend any course on any topic, you never will start to learn advanced concepts like architecture, or how to code on TDD or BDD. Make sense to start for basic concepts, and yes I know they're out are courses for advanced concepts, but even those start from the basics of that expert knowledge.

I come across different people who are thinking to create a "millionaire app" starting to develop without even know what is a function, then they get frustrated and give up because programming is hard. Of course, programming is hard, everyone knows that, is like running a marathon or lift 300kg is hard but is achievable if you training seriously and do things correctly. Only with a solid foundation, you can build solid knowledge. I never saw a block of flats stand on the sand without a solid base of concrete, if you do, please refer it to me.

Step 3: Minimum hardware requirements

Now you know, what you what to do and the first thing you need to learn.

Now is the perfect time to know if you have the minimum hardware, to learn, to materialize your knowledge. There out you can find so expensive hardware, and especially Apple products (that is a fact), and if it worth the money invested is another topic.

If you have programmed before, you are wealthy, or a combination of both, then get the machine you wish. but if you starting now, take this piece of advice, take the machine you can afford, which does not require you to sell your organs in order to buy it and let me put my own example to illustrate this point

Not long ago I brought a camera Canon 7D, and expend over £1200 (over $1400), and I have no idea about how to make a photo or record a decent video, the result was, the photo camera slept for more than a year high up in my closet until I decided to sell it. With time I will be on the need of another camera, then right now I have a Canon 250D which is cheaper and fulfil the propose.

What do I learn from this experience? Expensive hardware is only for experts who know and need those expensive features. Hey! you want expensive hardware? Please, Go ahead.

Back to the topic, check the minimum requirements to run smoothly the software you need to achieve your goals, be smart.

Step 4: Believe in yourself

This step is important from the psychological point of view. You decide to start a new career And your psychological strength will be tested every day, as more advanced topics you try to learn, harder will be to understand it, There are days where I hate programming and other days where I love it. When this happens to you, keep calm and not force yourself, you maybe do not understand it's now, but you will for sure understand it tomorrow. get some rest, you will see how next time you will get it, sometimes you need a break so allow it to you.


Be a programmer is not easy, and require of a logical, mathematical and engineering knowledge in order to fit for a job or develop good scalable apps, just keep in mind you can do it, and you can be really good in it if you believe you can. Maybe you will be no the best, but you can be very good which is enough always to try to reach the maximum of your capacity, so when you reach medium to high you will be satisfied.

From the other side, you need to be aware of your limitations, some people are better than others in different fields. as an example, If I wish to be a singer I can believe in myself much as I can, train and sign every day (with the climatologically consequences to make London the same as manchester*). Obviously there is a limitation, I wish to be a singer but my voice is in a range from very bad to a horrible, so clearly I cannot be a singer. In programming is exactly the same but not that obvious, because everyone believes is able to be a programmer and is true, but if this does not motivate you and you do not want to do it anymore, not be forced to continue and just leave it. Your physiological anaemic state is more important than you willing, you can back other day and re-take it again if you consider and feel to do it.

* If you didn't get the joke: Here in the UK, Manchester is used to rain more often than in London, so if you sign bad it will rain and so and so, you get it now? yes?... let's move on.

Step 5: The P and the R

This steps will be no complete without the P and the R.

The P is Practice. The practice is beside study the most important one, you need to understand what you just learn, and for that, the best is open a new project and try to put in practice what you just learn, later when you learn more concepts try to mix that concepts together. As an example: If you learn how to do a variable then you practice variables, then when you learn functions, then practice functions and variable and functions at the same time, as an optional and as a personal tip I do record myself in a video or voice explain in my own words the topics I learned and I play it next day, so If I understand what I talking about then I can explain to others.

The R is Repeat the P.

We can summarise all this article as a simple quote.

"Decide what you want to do, and build a solid foundations. the rest will come on the appropriate time."
I Sometimes Send Newsletters

© 2019 David Cruz

Disclaimer: Opinions expressed on this web and blog are my own and do not reflect any of the companies I worked in the past or currently.