5 Steps To Become Programmer PDF
5 Steps To Become Programmer PDF
Ok, let’s leave it aside that these stories are usually overblown and that kids like this don’t have
much of a childhood.
Truth is, I was searching for myself. What would be my career path. One of the things I always
found interesting was definitely programming. But I didn’t know how to program and I had no
clue where to start.
What I know now, when I am a programmer and I make a living out of it, is that programming is
not for everyone. You have to have something that I call engineering mindset. This means you
are that kind of a person who likes to solve problems and likes to understand how things
work. But knowing upfront if you really have this engineering mentality or not, is hard. The best
way to figure it out is by trying to learn programming and you’ll see if it works for you or not.
If I learned something during my professional years as a programmer, is that it’s never too late.
Programming is not like sports where your physical abilities decline while you get older. I know
many programmers that learned coding while in their 20s or 30s and built themselves a
successful programming career. Heck, I even know a guy who started in his 50s, but more
about that some other time.
As I said, it’s never too late. But if you want to achieve a professional programming level, you
have to put a certain amount of hard work into learning and bettering yourself. I’m going to
present you 5 steps that will take your f rom a total beginner to the first programming job.
There’s probably more different paths that can get you there. I will show you the one that I’m
sure it works. Why? Because I went through it myself.
When I was trying to learn coding, my biggest question was: What is the best programming
language? What language will bring me a great paying job, a beach house and a BMW in my
garage.
Ok, I’m overreacting a bit - but you get it. :) The answer to this question is… There is no such
programming language! As a developer you work with many different programming languages
and to be honest: when you know how to code in one, you’ll be quick to learn others. Basic
programming concepts are the same with every one of them.
1
My advice is: start with HTML and CSS. This is how most of programmers started out and it’s
the most proven method that will get you into the world of code. Additionally, it quickly gives you
visible, interesting and useful results.
Image 1: HTML and CSS code creates a nice 3D frame around the picture in the bottom right corner.
This is how I started. I got some very nice introductory book and learned HTML and CSS from it.
Few weeks later I was able to create my first website (for a friend) and put it online via one of
these free hosting services that used to exist (this one was FreeHost386, but it’s long gone
now).
I put some sources below where you can learn HTML and CSS - one is an online tutorial and
the other is a book. But the fastest and most effective way to learn it well is by attending our
most popular course: Web development 1. You get a trainer that shows you the right way of
coding HTML&CSS and you can ask him/her anything you want. This way you won’t get stuck
while learning something completely new.
2
Step 2: Learn the basics of programming
Let me tell you a “secret”. Writing HTML and CSS code is actually not real programming.
HTML is a markup language and CSS is a styling language. Nevertheless, both of them give
you a good insight into what programmers do. And both of them are an important part of every
website. So you have to know them anyway if you’d ever want to become a software developer.
For programming you have to use a programming language. This is for example: Java, C#,
Python, C, JavaScript, C++, Ruby, PHP etc. I have read somewhere that there are more than
500 programming languages in existence. Whoa! :)
But there’s good news: you don’t have to know them all. Actually no one knows them all,
because that would be neither practical nor useful in any sense. The basic programming
concepts are the same in every programming language so when you learn how to use one,
you are able to quickly switch to another - if necessary.
So why do you say I should learn HTML&CSS first and only after that the basics of
programming?
Because when you learn programming, you usually see the results in a terminal which is a bit
less interesting than learning HTML&CSS, where you see the result of your code in a browser.
The result of an HTML&CSS code is very visual, for example you can use a lot of colors, you
can create images and buttons and other HTML elements.
When you learn a programming language, you see the results in a terminal in the shape of a
basic text (see the image below). But to be able to create dynamic websites or mobile
applications, you need to know both HTML&CSS and one of the programming languages (for
3
example Python). When you put these skills together you get a way more interesting result: a
useful website! Something that can’t be done with the knowledge of only one of these skills.
I suggest you start with Python. This is the one that got me started. As I said, the basics of
programming are the same in every programming language, so it doesn’t really matter where
you start. But many programming experts say that Python is the best language to start with
because it has a very clean syntax and requires less code (than other prog. languages) to
achieve the same result.
You can see an example of this in the image below, where you need only one line of Python
code to print “Hello World” in a terminal, while on the other hand you need many lines of code
to achieve the same with C and Java.
4
Where to learn Python:
● E-tutorial: Intro to Computer Science
● Book: Python Programming for the Absolute Beginner
● SmartNinja course: Web development 1
When you learn the basics of programming, you learn how to write your code in a procedural
way. This is a way of writing code that is fit for simpler programs. But there’s a more powerful
concept in programming, called o bject-oriented programming (OOP).
OOP is a way of writing and organizing your code which helps you to be more effective and get
better results with less code needed, than you would with procedural programming. That’s why
OOP is an essential skill for every programmer.
But there’s a catch. OOP can be hard to understand at first. Getting to know OOP takes some
time and especially practice. The more you use it in your projects, the better you understand it.
I met the concept of OOP when I started learning Java and using it to build Android applications.
But I really understood OOP through practice - after I made a couple of Android apps already.
You can learn object-oriented programming at our Web development 1 course. The advantage
of taking this course is that you have a mentor on your side that can quickly answer any
question you have and make the OOP concept clearer. I, on the other hand, didn’t have that
luck (to have a mentor), so I had to spend long hours googling to find solutions to even simple
problems.
Learning how to properly design a database is one of the rare useful skills I got at my university.
I studied Business Informatics and I learned database design at the class called “Databases”. I
was lucky to have a really great professor who put a lot of emphasis on practice, not just
theory. Not so common at any university.
5
Image 5: Relational database design or schema
Most of websites and mobile applications need a database. You cannot become a professional
programmer if you don’t know how to properly design a database and how to manage it with
SQL.
Unfortunately not everyone had an opportunity to learn this skill at the university - or at least
they didn’t have a good enough professor. That’s why you can learn database design at two of
our courses: Web development 2 or I ntro to SQL and databases.
At the Web development 2 course you also learn (besides database design and SQL) about:
advanced web development concepts (like background tasks, cron jobs, CSRF etc.), JavaScript
and jQuery. But if you’d only like to learn about databases, go to the Intro to SQL and databases
course.
I haven’t found any good book or online course to learn database design and SQL language. I
think in this case it’s still very important to have a mentor or trainer that can explain things in
person, help you with exercises and answer any question you might have while learning.
Step 5: Specialization
There’s an English saying: “Jack of all trades, master of none”. This means that if you know
about many things a little, you’re not really good at any. Some people may interpret this as that
you should only learn one technology (like one programming language) and not even look at
others.
6
Is this correct? No! When you’re starting out in the IT world you have to try a lot of different
things. There are at least two reasons for that:
1. First reason is, this makes it easier to figure out what you like the most and what suits
you better. Maybe you’re more into front-end development. Maybe back-end. Or mobile.
Who knows? Try them all and you will see! :)
2. The second reason is that this helps you understand how things work in different
parts of the IT world. You can’t be a good mobile developer if you don’t understand the
basics of the server side back-end.
So even if you later decide, for example, to specialize in the mobile development field, you
should still understand how websites work. Especially because mobile applications usually
communicate with a web server. So in order to be a good mobile developer, you have to
understand the web.
Another reason is, that if you work in a team, where each of the programmers takes care of
some part of the IT infrastructure, you know how to fix things in some other field, not only
your own. Sometimes this is very important, because it can happen that suddenly some
coworker resigns or has to go to a hospital.
If you understand what your coworkers are doing, you can quickly become one of the most
important parts of the team and also a basically irreplaceable part. And this is quite cool. :)
Where to specialize is completely your choice. You can go into mobile applications and
specialize as an Android or iOS developer. You might prefer web front-end and you specialize
as a JavaScript developer. Or something different, like Wordpress or Magento web shops.
The most important thing in this last step is practice. Try to get an apprenticeship at some IT
company or at a company that has an IT department. SmartNinja also has a lot of connections
with IT companies, so we’ll help every student that finishes Web development 2 get an
apprenticeship.
You can complete this 5 steps in about one year. Of course, if you’re ready to put effort and
work into it and you find out that you really like programming. After these 5 steps you’re ready
for your first internship or junior developer job in some IT company.
When you’re looking for a job it’s also very important to have a portfolio of your own projects.
In each of these steps build as many hobby applications and websites as you can, so you can
show them at job interviews. You can do a lot of projects like this during SmartNinja courses,
because they are part of the learning process.
7
And if you finish Web development 1 and continue at Web development 2, we’ll get you an
apprenticeship at some IT company. This way you’ll get much needed experience that will
jump start your coding career.