Sie sind auf Seite 1von 72

Table of Contents

Introduction ......................................................................................................................................... 1

1. Do programmers secure jobs with practical experience alone (like doing an online
course), or do they need a proper Computer Science (CS) degree? ...........................2

2. Which programming language gives the best opportunities for career advancement
and job security? ...................................................................................... 4

3. Which is the best programming language to start out with? ............ 7

4. Which is the best area of software development to get into? .......................... 8

5. Do I need to be good at maths to be a programmer? .................................... 12

6. Do I need to be a genius to become a programmer? ...................... 14

7. Is programming a well-paid job? It is worth my time to become a


software developer? ........................................................................... 15

8. Is it feasible to switch careers into programming and not lose your


current salary level? ........................................................................... 18

9. How long does it take to learn to program? ................................... 21

10. Am I smart enough to learn how to program? Will I understand


and “get” software development? .......................................................24

11. How do you find the best training courses to become a


programmer? ..................................................................................... 26

12. Are there still jobs on offer in programming, or are companies just
outsourcing more and more? ............................................................. 29

13. Should I invest in a “how to program” book, or an online course? 31

14. What is the best way to learn programming? ................................ 33

15. Are Bootcamps a great way to become a programmer? ................. 36

16. What are the best programming books? ....................................... 37

17. What is the difference between a programmer and a software


engineer? ........................................................................................... 39

18. How quickly can I start earning money with programming? ........ 40
19. What computer equipment do I need? .......................................... 41

20. What software do you need to buy? ............................................... 43

21. Can I really create my own applications? ......................................44

22. What are the 4 skill stages of becoming a programmer? ............... 45

23. Won’t programmers become obsolete when artificial intelligence


kicks in? ............................................................................................ 48

24. Should you learn more than one programming language? ............49

25. Do only nerds “fit in” when working as a programmer? ................ 51

26. What opportunities are there for women as programmers today?52

27. Are online video course instructors, just failed programmers? ..... 54

28. Is it financially worthwhile to become a programmer? ................. 56

29. Do I need a mentor to become a programmer? .............................58

30. I tried out programming, but I am stuck – is programming for me?


60

31. How many hours should I study/practice per day ......................... 61

32. Why you should invest in your future programming career .......... 62

33. Are you too old to learn how to program? .....................................64

34. Are you too young to learn how to program? ................................ 65

35. How do I get started? ....................................................................66


Tim Buchalka’s Programming Career Guide 1

Introduction
Thanks for downloading my free guide that seeks to answer some of the most pressing
questions about moving into a new career as a software developer.

I started programming around the age of 16, way back in 1980 (in the Wild Wild West
days as my son used to tell me).

Back then I had no one to ask for help and had to figure it all out on my own; I
eventually moved into full-time software development where I worked for many
companies including Mitsubishi, SAAB, Fujitsu to name just a few.

These days, I focus almost exclusively on teaching people how to program via online
video training. I believe this is far and away the best way to learn.

As of the time of writing this e-Book I have twenty-eight (28) courses available. You can
get an up to date list of all my courses, along with course curriculums, and even reviews
from other students on the website below.

https://LearnProgramming.academy/

In this e-Book, you will find answers to thirty-five (35) of the most common questions
people have asked me during my software development career. Having taught close to
400,000 people how to program, it’s likely that your question is answered in this
document. Please take a read.

Ok, that’s enough of an introduction, let’s get started on answering the big questions
about moving into a new career as a software developer.

There is also a section at the end of the e-Book that discusses how you can get answers
to other questions you may have, if for some reason your question was not answered in
this guide.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 2

1. Do programmers secure jobs with practical experience alone


(like doing an online course), or do they need a proper Computer
Science (CS) degree?
There a few things to point out here. Firstly, having a CS degree does not necessarily
make you a better programmer.

I’ve met and worked with a large group of developers over the years, some with CS
degrees, some without. I never found a pattern to identify a better programmer based
purely on a CS degree.

In my experience and opinion, having a CS degree does not guarantee you will be a
better programmer, compared to someone without a degree.

Secondly, having been in numerous interviews as both an interviewer and interviewee,


the question about education qualifications has nowhere near as much weight as what
skills and experience you are bringing to the table.

If you can demonstrate excellent skills in software development, that’s going to give you
a big advantage compared to someone holding a CS degree without any practical
experience.

After all, you are being hired for what you can do for the company, not for the piece of
paper with your qualifications written on it.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 3

With that said, I need to mention that if you are up against someone with a CS degree
and practical experience, and you don’t have a CS degree, then all else being equal you
may find the other person might be the preferred applicant for the position.

There needs to be a way to separate applicants for a job, right?

Also, you may come across companies that insist on the applicant have a CS degree, but
that’s getting rarer and rarer these days, and with good reason.

Ignoring any applicant without a CS degree seems to be an excellent way to miss out on
a large pool of great programmers.

Bill Gates and Mark Zuckerberg are just two examples of programmers who achieved
great success without a CS degree.

Over the past 35+ years, I’ve seen numerous people without degrees get jobs as
software developers. In almost all cases it was because of the skills and practical
experience they bought to the table that got them the position.

The bottom line is if you have excellent software development techniques, and can
demonstrate these, then it doesn't matter if you have a degree or not.

So, start working on those software development skills today!

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 4

2. Which programming language gives the best opportunities for


career advancement and job security?
Which programming language you choose should consider the following:

Language maturity – generally speaking, a newly released programming language is


going to give you fewer job options in the short-term.

That’s because most companies take a while (often a very long time) to commit to a
programming language, and it's usually only after the language has been on the market
and achieved a degree of market share.

A company is not going to want to invest in a programming language only to discover


that as of tomorrow, it is no longer being supported or maintained; that, or that it's very
hard to find programmers skilled in that particular language.

If they get caught with a language that does not gain a foothold in the market, it can end
up being a very expensive process to get their programs re-written in another
programming language.

Think of this as risk aversion; companies usually won't take significant risks on
programming languages to avoid potential issues down the track.

Of course, there is no guarantee that even today’s favourite programming language


won't go out of favour tomorrow.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 5

In recent years, languages like Java, Python, C, and C++, have consistently been at the
top of the popularity list.

Up and coming languages in 2018 that are not as popular as the mainstream languages
(at least, not yet) include Rust and Kotlin.

The Tiobe index maintains a list of programming language popularity:

Source: http://www.tiobe.com/tiobe_index

As you can see, these languages are very popular, and with that popularity comes
opportunity and jobs.

Java, C, C++, and Python are excellent choices as can be seen above. These languages
have been close to the top for many years.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 6

Source: http://www.tiobe.com/tiobe_index?page=Java

It's very unlikely that languages like C, C++, Java, and Python will disappear because
they are already well entrenched in companies all over the world.

These languages have been around for some time, are mature and are used extensively.
Most of these languages would be a safe bet if you were trying to decide on a particular
programming language.

Later in this document, we will look at how to decide on a particular language to learn.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 7

3. Which is the best programming language to start out with?


We have already discussed languages which give the best job opportunities and job
security, so if you haven’t yet, review the section above.

In terms of which language is easiest to start with if you have not programmed before,
I’d learn towards Python, Java, Ruby, and JavaScript.

Others to consider are C and C++. Some people may disagree with these last two
languages, as traditionally they’re listed as anything but easy to learn. However, with
the right instructor and training material, you really can start these as a beginner.

The right teacher and right training material can make even the hardest language
almost easy to learn.

No matter what language you choose, I recommend you go into the experience of
learning knowing that it will take time to master, and to give yourself time to learn the
foundations.

Any worthwhile skill takes time to master, and over time concepts that seem almost
impossible to understand become easy and simple.

The best advice I can give you is to be persistent. In fact, I’ve created an entire article on
persistence and its role in software development.

Take a read of the persistence article here.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 8

4. Which is the best area of software development to get into?


Web Development? Mobile Apps (iOS or Android)?

Desktop applications for PC and Mac?

Enterprise applications (stock market, real time, and other applications alone these
lines)?

Embedded applications (running on hardware to perform functions like flying a drone,


controlling pumps, or traffic lights, etc)?

Games?

No one answer is correct for every person here.

Ideally, you want to pick something you are interested in learning. For example, if you
have dabbled with setting up web pages in the past, then web application development
might be an area you should look at.

Maybe creating apps for smart devices like iPhones, iPads, Android phones, and tablets
takes your fancy?

In 2018 Mobile Apps and Web Development are hot, and Enterprise apps are not far
behind.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 9

By hot I mean in demand, meaning more potential work opportunities for you.

Take the mobile app market

It's been growing year after year and in 2017 there were around 197 billion app
downloads across both iOS and Android.

Source: http://www.businessofapps.com/data/app-statistics/

That’s a lot of devices and a lot of users accessing those devices. Android has far and
away the largest userbase, but traditionally iOS has had the greater revenue.

Web application development

Don’t confuse web application development with web design; they are two entirely
different things.

Web design is the process of creating a web page/site with images, text, etc.

Web application development, on the other hand, is creating applications that perform
functions like providing web services to allow controlled access to corporate
information over the Internet.

Some examples would be a task list manager like Remember the Milk:

See: https://www.rememberthemilk.com

Another example is Quandl, which has an Application Programming Interface (API) to


allow programmers to access stock market information via a program:

See: https://www.quandl.com/blog/api-for-stock-data

Enterprise applications

Think of these as broad and complex versions of web applications, tailored for larger
companies and more complex applications.

The ones with teams of programmers, with real-time mission critical applications.

Embedded applications

Another popular category of software development. Probably less so than the groups
discussed so far because it’s a much more specialised market.

This field is rapidly changing with the advent of devices like the Raspberry Pi, opening
up a huge variety of applications like home automation, drones, and weather recording
to name just a few.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 10

Source: https://www.yodeck.com/news/behold-raspberry-pi-3-model-b-plus/

Yes, this is a complete computer that is used for a variety of purposes.

Other areas of embedded applications would be devices like refrigerators, cars, and
other things of that nature that have microcomputers involved in their design (you
would be surprised by how many household items use this technology today).

Desktop applications and games

Two other popular areas would be desktop applications for PCs, Macs and games
(mobile apps, game consoles, and of course the PC and Mac again).

So many choices, how do I choose?

There is a diverse range of options, but the thing to keep in mind is that you usually
don’t have to decide on what particular area to get involved in initially.

All you need to do is choose a programming language that is popular and used in many
of these areas. Learn that language well and then, with that experience under your belt,
you can start looking at the particular field to specialize in.

Good language choices here would be Java (you can create desktop apps, mobile apps,
do embedded applications, web application development, and games with Java).

Microsoft C# is another programming language that is becoming more popular, and


would be a good choice for desktop apps, games, web development and the other
categories to a lesser degree.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 11

C++ and C are popular languages are not suited to web application development and
enterprise applications, however are often good choices for games and embedded
applications (and to a lesser degree, mobile apps – they are usually not the language of
choice here).

Python is a language that is well suited to many of the options here as well and has the
advantage of usually being easy to create programs with fewer lines of code, versus the
bigger languages.

The fact that Google picked Python as one of three core languages used in their
company is a testimony to the value they place on it as a language. Code written in
Python processes Google search results (amongst other things).

So, just pick an area and language and get started! Don’t overthink this too much. It’s
ok if you start something and try it out and find it’s not for you, and then try something
else until you have found something you enjoy.

I would recommend an area and language enough time before deciding that it’s not for
you – When you start out with something new, it does take time to get comfortable with
it.

One thing you could do is just pick a “safe” language like Java, Python, C++, or C# and
start learning that while you dabble in the various areas (mobile apps, web app
development, etc).

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 12

5. Do I need to be good at maths to be a programmer?


No specific math skills are necessary to be a programmer. Why? Because the computer
usually does all the calculations for you.

For example, you may or may not know how to calculate the square root of a number.

You certainly don’t need to know how it's calculated; you just need to know the
command to instruct the computer to calculate it for you.

The example on the next page is Java code used to print the square root of 50:

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 13

Note, the Math.sqrt part with the number 50 supplied in brackets, along with the
answer at the bottom of the image. The computer calculated the square root and gave
you the answer.

The important thing when programming is learning the right instructions to tell the
computer what to do, rather than having to understand how to perform the given
calculation.

And you will learn those instructions with an good online video training course.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 14

6. Do I need to be a genius to become a programmer?


Do genius programmers exist? Yes.

Are all programmers’ geniuses? No.

Do you need to be a genius to become a programmer? No.

As is the case with most career fields, you will find people of varying skills and abilities.
Some people are really driven and reach the top of their field, and others have different
priorities and are still performing well.

There is always room for these and other types of people in the programming industry –
generally most people have similar yet different goals, and there are usually
opportunities in software development for all types.

The reality is - particularly with larger team-based software development - it takes all
types of programmers. Junior programmers, senior programmers and of course those
in between.

Collectively, they build the companies’ software, each contributing to a piece of the
“puzzle” that is the completed software.

So, whether you are a genius or not, you will find a lot of opportunities as a software
developer.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 15

7. Is programming a well-paid job? It is worth my time to become a


software developer?
Yes, software development is well paid. After all, how many companies exist that do not
use computers in some way, every day?

The fact is, technology is here to stay, and programmers are very much in demand.

Of course, with demand comes opportunity, and that opportunity includes getting paid
very well for your skills.

The average salary in the USA for an entry-level programmer is USD$54,000 in 2018.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 16

Source: http://www.payscale.com/research/US/Job=Computer_Programmer/Salary/9fadb9f1/Entry-
Level

Of course, that’s just an entry-level position! With some experience, the average salary
jumps to the $80,000 - $90,000 mark and from there, can easily exceed the six-figure
mark ($100,000 plus).

Here is a story that shows the average salary of a Google programmer in the UK
currently, is around £200,000 (approximately USD$262,000):

Source: http://www.dailymail.co.uk/news/article-5592639/Google-staff-working-UK-paid-average-200-
000-year.html

I am not suggesting you are going to walk into a job at that level initially, but the point
is, the sky is the limit. If you become skilled at software development, you will be very
well rewarded for doing so.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 17

From personal experience, when I started my career in I.T. in the 1980’s it was a hot
niche to get into; that growth and opportunity has continued ever since right up to
2018!

Of course, technology has changed a heck of a lot since I started. These days your
modern smart phone has more power and memory than the devices used by some of
the biggest companies back then.

Back then programmers were paid well, and that’s still the case today.

The point is, software development has a long history of paying well, and this is very
unlikely to change in the future.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 18

8. Is it feasible to switch careers into programming and not lose


your current salary level?
Firstly, it's very much possible to change careers later in life. I’ve seen and spoken to
many, many people who have made career changes in their 30’s and 40’s and even 50’s.

In many ways, it's more ideal for you to be switching later in life.

Why?

In many cases in our early years, we are still feeling our way through life and don’t
know what we want. Life just gets in the way with new experiences, and the priority is
not necessarily in our career, or we possibly don’t make the best decisions we could
make for a variety of reasons.

When we get older (read: mature) we tend to know a bit more about ourselves and our
wants (and most importantly, what we don’t want).

We are less likely to want to stay in a job or industry we hate, and can often be more
committed to achieving our goals.

Consequently, when we set goals, we tend to be more likely to do what is required to


achieve them.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 19

In many respects, we give ourselves a great chance to reach our goals with decisions
made later in life.

As a result, in my experience the majority of people I have met who took the decision to
change careers later in life, succeeded in their goal and are happier as a result.

Don’t let age be a barrier stopping you from striving to reach your goals. If you want to
do something, the only real obstacle is the decision to go for it.

I am not suggesting you quit your current job today, but maybe you could pick up a
programming course and start learning outside of work hours.

Why not start working on your goal part time?

Set yourself a plan to invest in an online training course in a programming language and
commit to studying a little every day.

I am a bit biased here as someone who has released twenty-eight (28) courses on
programming, but why not make a start.

Check out my current list of online video courses here.

https://LearnProgramming.academy/

In my experience, more regular study - even in small batches of time - ends up being
much more beneficial than cramming all your study into a once a week or fortnight
session.

Invest just 20-30 mins a day in your future (watching a training course video, or
completing a course exercise) would be an excellent way to get started.

Doing this every day gives you 3-4 hours a week of study, and you can get through a lot
of training in that time.

Don’t think you can find 20-30 mins a day? What about watching videos on the daily
commute to work? Yes, you can watch my (and most other) online video training on a
mobile device. How about watching one less TV program at night, or spending less time
on computer games and use that time to study?

If you obtain the necessary skills, it's entirely possible that your life experience will also
directly contribute to larger salaries for future opportunities, and you won't be starting
on the bottom rung of the ladder.

And yes, mature career switchers do get offered jobs, contrary to popular opinion which
would have you believe it's only the “Young Guns” who get all the programming jobs.

As to the question about matching your present salary, it’s very possible that if you keep
your current job and learn programming over time, that your other life and career skills,

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 20

together with your new development skills will earn you an equivalent salary to what
you are presently receiving.

Even if you were not able to achieve that initially, its highly likely that your motivation
and drive and also those life skills will give you more opportunities in your new career.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 21

9. How long does it take to learn to program?


The answer here is that it depends.

How much time do you have each day? How committed are you?

One thing I would suggest is not to hurry. With programming, like many other skills, it
can take time to learn and more time to master.

As much as I would love to tell you that you can become an expert programmer in 7
days, the reality is that it’s not going to happen.

That’s not to say you won't learn a heck of a lot in 7 days. What tends to happen with
programming, is that the more you learn, the more you realize you don’t know and have
to learn.

I can practically guarantee you will learn something new every day as a developer - and
that’s a good thing.

As I’ve mentioned previously, allocating regular sessions to learning is going to get you
up to speed faster, rather than assigning a single large study session once a week or
once a fortnight.

Think of the analogy of a student cramming before an exam by staying up all night,
rather than regular sessions of study over a period of days/weeks.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 22

Both can achieve the goal of passing the exam, but one is a heck of a lot less stressful.

What happens in the cramming scenario where a student leaves the study until the last
minute and they get sick, or some personal emergency means they don’t get that time to
study?

Leaving things till the last minute is setting yourself up for (potential) failure. Same
with learning – one missed small study session is easy to catch-up, but miss a large
study session that you are already doing in-frequently, and you are going to be finding
yourself repeatedly needing to re-watch the same videos because you have forgotten
what you learned previously.

The other point here is that we all learn at different speeds. We’re not all built the same.
Besides, at certain parts of your learning to program journey, you may feel
overwhelmed, and at other times feel totally in control and that it’s easy.

These feelings are entirely reasonable, and something that happens to virtually
everyone learning how to program.

If you are a little lost, then re-watching a few training videos two, three or more times,
or re-doing that course exercise can be an immense help to you.

Watching anything (study material, a movie, etc.) more than once will often result in
you finding something new that you didn't see in the initial viewing.

As an example, have you ever watched a movie twice and seen something the second
time that suddenly made more sense, or that you missed altogether on the first viewing?

I know that happens to me all the time, and it's no different with online video training.

By not rushing, you avoid putting unnecessary pressure on yourself to get something
finished by a certain date.

The other thing to consider is that often the online courses you take teaches things in a
logical order, meaning you want to understand a concept correctly before moving on to
the next section - because that next part will likely assume you followed and understood
the previous section.

So, don’t rush is the best advice I can give you as believe it or not, it's highly likely that
you will become a better programmer because you are understanding and mastering
the material along the way.

Great advice Tim, but you didn’t answer the question. How long does it take?

The average computer science degree is 2-4 years in length, but in general, I would be
surprised if you could not pick up major concepts of programming within a few short
months and be proficient in 3-6 months.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 23

But again, it does vary person to person. The more time you invest in yourself, the
quicker you can achieve your goal.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 24

10. Am I smart enough to learn how to program? Will I


understand and “get” software development?
No one is born a programmer. Every programmer used to be a person who could not
program and made the decision to become a programmer.

With the number of individuals, I have met in my career, I am convinced that anyone
can learn how to program.

Now some people will pick things up faster than others, and perhaps “get” the concepts
faster, but almost anyone who is prepared to commit to their education can become a
programmer.

Ask yourself, are you willing to commit to becoming a programmer? That’s the question
you need to answer honestly.

If you’re thinking, “I might give programming a try, but if it doesn’t work I will try
something else”, then really, you’re setting yourself up for failure.

You’re giving yourself an easy out. As soon as it gets a little hard, you will give up.
Don’t be that person.

I am not going to sugar coat this. There will be times where you are frustrated; things
are not working as you expect, and you hit a wall. You might start questioning yourself
and asking if programming is for you.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 25

Or you might start asking if you will ever understand this.

Are you going to persevere or give up?

The magic starts happening if you commit to finishing and continue moving forward. It
gets easier as you continue.

Here is an article I wrote to help students who were facing a challenge like this.

https://learnprogramming.academy/programming/programming-is-just-too-hard-for-
me/

If programming is something you want to do, then make the decision today that you are
going to become a programmer!

No if’s, and’s or but’s. Commit to not giving up, to persevere and to reach your goal.

If you do that, I am here to tell you, that there is every likelihood you will succeed.

Again, I will stress, no one is born a programmer, every person in the world who is a
programmer was once someone who wanted to learn how to program and made the
decision to become a programmer.

Now it's your turn!

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 26

11. How do you find the best training courses to become a


programmer?
There are many steps you can take to make sure you pick the right training course that
is going to help you become a great programmer:

a) What are the credentials of the course instructor? Sadly, on the internet there are
people creating classes who have no real professional software development
experience.

It's vital you find a course from an instructor with commercial programming
experience. It’s then much more likely they will be teaching you the right way to code,
based on software development standards used by companies you may well be working
for in the future.

The reality is that there are many ways to solve a problem with software development,
so do you want to learn from an expert or something who has just dabbled with
programming?

b) Course updates. I’ve mentioned before about technology moving fast, and this very
much applies to programming. Learning a language today means you are learning a
particular version of a programming language, and programming languages get
updated often.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 27

If you don’t invest in a course that gets often updated, when a new release of the
programming language/environment comes out you may well be learning skills that are
obsolete, or no longer relevant in the most current version of the language.

For this reason, make sure the course is regularly updated.

c) Reviews – You’ve probably seen reviews before and looked for them when buying
online, and you should look to do the same with online courses as well. Reviews tell
us so much about the quality of any product we buy.

The “sales page” for most training courses are going to be very positive, and it's unlikely
to be negative in any way, right?

But reviews are written by students who have studied the material, so it's going to give
you a pretty accurate take on the course (always make sure the reviews you read are
from actual buyers of the course).

How did they find it? Were they happy with the quality? What did they love about it?
What did they hate about it? Did it teach them programming?

Taking the time to read reviews or testimonials is an excellent way to confirm the
courses quality (good or bad).

d) Access to material. Do you get ongoing lifetime access to the content? Or is it a


course you have to pay a monthly fee for ongoing access?

I am not necessarily saying it’s a bad thing to pay monthly for a course (indeed if the
course is being regularly updated, then paying a monthly fee for these updates is
probably a very good idea).

But you want to be sure about this before investing.

e) Support – at some point in your journey, you will get stuck. You are probably going
to have questions and need a place to get answers to them.

Many course instructors don’t provide support for their classes. They just upload them
to a website, and once you’ve paid, you get to access the materials but there is no facility
to ask questions (or receive answers!).

It is possible to figure problems or challenges out for yourself, but for some cases, it's
great to get a little help.

Make sure there is a support mechanism provided, preferably by the course instructor
him/herself. After all, they probably know the material better than anyone else.

Having support by the course creator should also give you confidence that the
instructor is going to be around for the long term and that he/she is committed to
providing you the best possible training.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 28

It would also be very useful if there is a course forum or area where you can see
questions asked by other students and the answers to those questions, and even a way
to engage with other students.

f) Trial – Having a low-cost trial of a training course is an excellent way for you to
assess the quality of the course and to determine if it’s right for you.

Does the course have a way for you to try before you invest in the full course? Being
able to access some of the material before paying for the entire class is an excellent way
to have a look at a sample of the course to decide if it's for you.

This is particularly relevant if the course is very expensive.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 29

12. Are there still jobs on offer in programming, or are companies


just outsourcing more and more?
There is no doubt that many businesses use outsourcing. At face value, it can seem very
economical to pay someone in India, the Philippines, or another country about 10-15%
of the salary of a programmer in the USA, and many companies jumped at the chance to
do so.

But it has not worked out as well as expected in many cases. The reality is, a
programmer’s job is not just coding, there is an element of discussion/understanding
the problem, and it's much harder to explain over the internet than it is in person.

Besides, outsourcers will generally need to be managed as they often work on a


component of the entire project, so someone has to have the full picture and be able to
understand the exact requirements of the work to be completed.

The Bureau of Labor statistics in the USA predicts growth of 17% from now until 2024,
which is much faster than the average for other occupations. The growth is due to the
increase in demand for software.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 30

Source: http://www.bls.gov/ooh/computer-and-information-technology/software-developers.htm

The bottom line is that the opportunities are increasing at a faster rate for programmers
than on average for other occupations! Yes, local jobs are available for programmers
and will continue to be available in the foreseeable future.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 31

13. Should I invest in a “how to program” book, or an online


course?
My answer is going to be a bit biased here because I focus on creating online video
training courses but let me give you some history of why I believe online video courses
are the way to go.

Back in the day when I was learning how to program, the only way to do it was to buy a
book and learn it that way.

The book selection was pretty limited, and to a great extent you were left to your own
devices.

I am going to show my age here, but when I was learning to program, the internet did
not exist.

No web browsers, no YouTube, no forums, and virtually no ability to ask anyone for
help.

I was on my own, and I struggled. By sheer determination, I eventually learned


programming but looking back, comparing the way I learned to an online training
course, there is just no comparison.

Firstly, I don’t know about you, but I find many computer programming books to be
“stuffy” and frankly, boring.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 32

Yes, they teach the basics of programming, but do they have to put you to sleep at the
same time? No joke, I have a serious problem staying awake when reading computer
programming books.

I just find the medium of reading for learning how to program is not efficient. It's all too
easy to get distracted and not absorb the material.

I’d much rather someone showed me how to do something. Play a video and see what
the screen is meant to look like, and how to put a program together.

To be able to follow what is demonstrated in the video, step by step, is a much better
learning experience and dare I say, enjoyable.

You mean you can actually enjoy learning? Yes!

For me, there is no comparison; an online training course is going to get you up to speed
faster, and teach you programming much better than a book ever could.

Visit https://LearnProgramming.academy/ to see a current list of my online video


courses.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 33

14. What is the best way to learn programming?


I’ve will discuss Bootcamps in an upcoming part of this e-Book. Other options include
YouTube or other free training, attending university, and online video courses.

There is a lot of good quality training on YouTube and online in general if you are
prepared to hunt for it – I certainly use this method when I want to find out how to do a
particular “thing”. In my opinion, it’s not an ideal method for learning how to program
because tutorials on YouTube or online are often incomplete.

Or, worse still, they might be created by someone who is just learning themselves –
someone who knows just enough to create the tutorial, but not enough to know that the
technique they showed you is not considered the best way to solve a particular solution.

Often people have the best of intentions when they create these free tutorials, and some
of them really are good, but I’ve found a heck of a lot of material that is bad for a
number of reasons:

a) Teaching bad practice – one of the worse things you could do is learn
programming from someone who is not a programmer themselves and/or who
does not know the right way to code a given solution (as well as the reasons why
you would NOT use a particular method).

b) Incomplete – the very nature of free material is that it’s usually incomplete –
people have spent a bit of time putting something together, but then life gets in
the way, and they never get to finish it.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 34

c) Outdated – you might find the best free tutorial, but if it’s out of date and doesn’t
work properly with the latest version of the programming language, then it’s not
really going to be of much value – as a beginner, you may not even know that it is
out of date!

d) Support – this is a big one. What happens if you can’t get the tutorial to work?
Who can you speak to? Often with free tutorials, you are on your own to figure it
out.

In general, my advice would be to use paid material. Let’s face it, we need money to
exist on this planet – food and shelter are basic necessities that require money in most
cases.

If a person is being paid for the work they produce, they are more likely to keep it
updated and provide support. That’s just the way the world works.

That doesn’t mean you need to pay for the most expensive course on the internet, but
when a course is being sold, then the author is receiving an income from it and can
(hopefully) continue to update it and keep it relevant.

Going to university to learn programming – there are definitely advantages to do this if


you have the time and money (in many countries, including Australia and the USA) it
costs a lot to go to university.

One big advantage is having the degree on your résumé. I think being university
qualified looks great and can increase job opportunities if you are competing for jobs
with applicants who are not university qualified.

However, don’t fall into the trap of assuming that university training is better than other
forms of training. The sad fact is that often, it won’t be!

It really depends on the instructors, the training material, and how it’s presented.

It’s interesting, but I get a decent number of people who are going through or have
completed university courses asking for help because they have felt lost with the
material being presented!

Also, people telling me that my online video courses actually teach better than
university training.

Take a look at just one recent message I received recently from a student:

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 35

As you can see, Mindaugas actually mentioned he learned more from my Java
Masterclass course than he did in 3 ½ years of university training.

I don’t include that here to boast, but to let you know that you shouldn’t assume that
university training is the best way to learn as for many people, it won’t be.

Two other ways to learn programming are via online video courses and with books –
I’ve already answered that in the previous question, so check that out if you haven’t
already done so.

I really do believe online video training is the best way to learn to program.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 36

15. Are Bootcamps a great way to become a programmer?


In order to answer this, I’d suggest you first focus on what you are trying to achieve.

Bootcamps are generally full time and very intense, not to mention expensive, so you
need to go in pretty committed – on the other hand students who complete Bootcamps
can sometimes find job offers after doing so.

There is a huge quality gap between different Bootcamps – you can’t assume that a
particular Bootcamp is good just because their page on the internet says it is – you
should do your due diligence and find former students’ reviews.

Bootcamps usually don’t cover things in depth – they aim to teach you a broad range of
skills, without going into detail in a lot of areas – depending on your goals this may be or
may not be a good thing.

You really do need to define what your goals are before signing up to a Bootcamp in my
opinion. If your sole goal is to become a programmer, then I’d suggest maybe there are
other less intense and cheaper ways to become one.

If you like intense environments and putting in the hard work for a long period of time
to increase the changes of a job offer, and you have the funds to do it, then yes,
Bootcamps may be worth it.

But keep in mind there are other ways to learn programming as well.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 37

16. What are the best programming books?


This is a difficult question to answer, for a number of reasons.

As I have previously mentioned, I learned a lot about programming from books when I
was starting out, but that was because there were few other options.

The internet didn’t exist, so there were no online video courses, or video training of any
kind. Bootcamps didn’t really exist. Universities were around and that was an option,
but it didn’t appeal to me.

The other option was books – so I bought many books and learned to program that way.

I’m here to tell you, it was hard – books can be so dry in the way they teach, and of
course they are very static – unlike an online video course that can get updated at any
time, a book doesn’t get updated – over time changes will be made and incorporated
into a new version of the book.

If you had no other choice, then a book would be a good way to go, but in 2018 with
online video course training, I can quite honestly say I’d never use a book.

The very nature of online video training is that it’s visual and it’s usually interactive –
Watch a video, follow along on your computer, and if you get stuck you can visit the
courses “support” section where you receive help from the instructor or other students.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 38

Thanks Tim, but you haven’t answered the question - what are the best programming
books?

Ok, well my recommendation is to not use books most of the time, simply because you
don’t need to.

In the case of my video training, the material is designed to be standalone and not
actually require a book or any other material.

If you really must see an example of a book I used to recommend (but no longer do),
then here is one:

NOTE: Don’t buy this book today. Why? Because it’s 12 years out of date!

At the time though (2006), it was a great book that I loved and recommended to
everyone.

Today, I would NOT recommend you buy a book that is this outdated. Even a few years
is an eternity in the software development industry.

Sure, there would be some aspects to this book that are still relevant, but as the note on
the Amazon page says, it’s been fully updated for Java SE5 – meaning Java Standard
Edition version 5. As I wrote this, we are now at Java version 10 and version 11 will be
out in a few months’ time.

I think universities often promote the need to buy a text book to follow along with the
course, and for this reason some students think a book may be needed to help learn
when taking an online course. Usually that’s not the case.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 39

17. What is the difference between a programmer and a software


engineer?
A programmer writes program code, where a software engineer may write code also,
but then also be involved in architecting (designing) software components as well.

However, it’s not uncommon for a programmer to be referred to as a software engineer


as well. It really depends on the job.

In general, my advice would be to use both terms interchangeably, but then if you really
want to know what a particular job entails, then refer to the job description which
should outline the specifics.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 40

18. How quickly can I start earning money with programming?


This really depends on you and your ability to study and learn programming.
Programming is not something you are going to learn overnight. You can learn the
basics pretty quickly, but to become good at programming takes time and practice.

A person who wants to practice medicine cannot watch a few videos and then start
operating on people – there is a process they go through which involves study, practice
and so on.

The same is true for programming. I’d say with certainty that most people could
become a programmer much faster and be earning money well before they become a
doctor.

I’ve had students with no previous experience go through my training and start their
first job within a few months’ time.

It’s my recommendation not to treat learning programming as a race – students who


rush through the training tend to miss key concepts and get tripped up later in the more
advanced material which assumes knowledge of the earlier material.

Take your time to really understand what you’re learning which will make you a better
programmer in the long term – and that means you will be earning a better salary too in
most cases.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 41

19. What computer equipment do I need?


To a certain degree this is language dependant, but most modern computers (released
in the past 4-5 years) should be able to be used for software development.

Languages like Java (and the associated programs used to create Java programs) tend to
use a lot of memory, so having a decent amount of ram is useful.

As a general rule, I’d recommend 8GB of ram as a minimum, although you can probably
get away with less.

In general, the other parts of the computer are not that important (but there are some
exceptions). Things like the CPU type are not usually important. If you’re developing
Android applications, then I would generally recommend an Intel CPU because the
“emulators” (which are programs that run on computers to allow you to test Android
apps) often require an Intel CPU and won’t work on an AMD CPU.

With that said, there are other options; Google own Android, and have a free IDE
(Integrated Development Environment) called Android Studio. This is a program you
install on your computer to help create Android apps.

This program tends to be resource hungry, so I’d recommend 8GB of ram again if you
intend doing this, but you can probably get away with less.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 42

You can develop on Mac, Windows, or Linux; there usually isn’t a preference of
operating system to develop on, so I’d recommend sticking with what you are used to
using.

Things like graphic cards, hard drive size and so on are usually not an issue, unless you
intend to write graphic intensive games – in that case you may need a more powerful
GPU (Video card).

Don’t forget if you are programming for iOS (iPhones or iPads) or Android (phones and
tablets) its not essential, but recommended to have a physical device for testing – in the
case of iOS because it’s an Apple thing, you generally need to have a Mac computer to
program iOS apps (it is possible to create a Mac environment from a PC which is known
as a Hackintosh, but I wouldn’t recommend it).

Source: https://en.wikipedia.org/wiki/Hackintosh

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 43

20. What software do you need to buy?


Starting out, you probably don’t need to spend any money on software to help you
become a programmer.

It’s certainly possibly to buy software to help you, but it isn’t essential. Most
programming languages have a decent number of free tools you can use.

For Java, my recommendation is IntelliJ Community edition (free to use). This is the
tool I use and recommend in my Java and Python courses.

IntelliJ has free plugins available to enable Python and other language support as well:

https://www.jetbrains.com/idea/

I’ve mentioned in another section that Google have a free program called Android
Studio available for Android app development.

https://developer.android.com/studio/

In general, good online video courses will usually recommend a free tool for you to use
and show you how to download and use it.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 44

21. Can I really create my own applications?


After going through one of my (or other) online video courses, yes you can. I know this
at least in the case of my courses because I’ve had many messages sent to me by
students who have done just that.

Creating applications involves a range of skills, and the more time you immerse yourself
in learning how to do it (which is explained in my and other high quality online
courses), the better you get.

You probably shouldn’t expect your first application to be the best application out there
– the biggest most successful applications often have large teams of highly skilled
programmers working on them. But there really is no reason why you cannot release
an application of your own creation.

There are kids making millions with apps! There is no reason why you cannot do the
same.

Here is just one story.

Source: http://www.dailymail.co.uk/news/article-4415560/Ben-Pasternak-17-
making-millions-teen-focused-apps.html

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 45

22. What are the 4 skill stages of becoming a programmer?


I’m a believer in the four stages of competence anytime you are learning a new skill, and
programming is no different.

1. Level 1 - Unconscious Incompetence

The individual does not understand or know how to do something and does not
necessarily recognise the deficit. They may deny the usefulness of the skill. The
individual must recognize their own incompetence, and the value of the new skill,
before moving on to the next stage. The length of time an individual spends in this stage
depends on the strength of the stimulus to learn.

2. Level 2 - Conscious Incompetence

Though the individual does not understand or know how to do something, they
recognize the deficit, as well as the value of a new skill in addressing the deficit. The
making of mistakes can be integral to the learning process at this stage.

3. Level 3 - Conscious Competence

The individual understands or knows how to do something. However, demonstrating


the skill or knowledge requires concentration. It may be broken down into steps, and
there is heavy conscious involvement in executing the new skill.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 46

4. Level 4 - Unconscious Competence

The individual has had so much practice with a skill that it has become "second nature"
and can be performed easily. As a result, the skill can be performed while executing
another task. The individual may be able to teach it to others, depending upon how and
when it was learned.

Source: https://en.wikipedia.org/wiki/Four_stages_of_competence

When you start out as a programmer, you will usually be at level 2 – Conscious
Incompetence.

You will not usually be at level 1, as you’ve already decided that programming is a
valuable skill to learn, you just don’t know how to do it yet.

In the case of one of my online training courses, once you get started with it you will
soon move to level 3 – Conscious Competence.

You will be able to follow along and mimic what is been shown on screen on your
computer, and find you make mistakes (which are a natural part of learning).

You will make slow but steady progress as you work through the course.

At regular times, you will find the material you are learning seems overwhelming and
hard to understand, but if you persevere and battle on, it will become easier and easier.

A common challenge that students find at this level, is it’s relatively straight forward to
understand how to do it when being shown, however it’s harder to do when it comes to
developing something yourself.

Please understand this is a normal part of learning a new skill. Keep working and
persevering and don’t be too stressed to get to level 4 – it will happen in it’s own time.

Finally, you get to level 4 – Unconscious Competence – you can apply your skills without
even thinking about it.

I think of this stage like driving a car or riding a bike. Once you have mastered it, you
don’t have to think about changing gears, or turning, etc – you decide where you want to
go, and your hands and feet know what to do.

That’s not to say that if you get into another vehicle or hop onto another bike, you have
to re-familiarise yourself with it.

In programming terms, this would mean that you know how to go about programming –
if you need to create a new “method”, you know how to do it. If you need to create a
new “class”, you know how to do it.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 47

It doesn’t mean you have all the knowledge in the world about programming
memorised. What you don’t know directly, you will have acquired the skills to research
and find the information you need.

That’s what professional programmers do – they’re good at programming, and good at


research.

If they need to do something they have not directly done before, they have good
research skills to find the necessary information online and can then incorporate that
into their program.

This is something that comes as a surprise to people learning programming – that even
the professional programmers need to look up how to do things sometimes. That’s how
programming works, no one in the world knows everything about programming.

Part of the job of a programmer is research – this is one reason why I show you how to
use the help documentation and to research things in general; it’s a skill you need to
master to become a great programmer.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 48

23. Won’t programmers become obsolete when artificial


intelligence kicks in?
There is no doubt that leaps in artificial intelligence are making jobs redundant. But
there is no Skynet yet, computers can’t think for themselves, and it’s going to be quite a
while before they do (if ever).

Humans create the artificial intelligence programs that run on computers and give the
computers the capability of making “decisions”, which will help the program to “learn”.

However, the computer is not thinking for itself as a human does; it’s merely following
instructions created by a human.

If programmers become obsolete, it won’t be for some time. If anything, non-


programming jobs are much more at risk of being lost to automation / artificial
intelligence, etc than computer programmer jobs are.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 49

24. Should you learn more than one programming language?


My recommendation is to learn one language well, and then look at learning another.

More and more, it’s becoming an essential skill to learn multiple programming
languages. The good news is after you have learned your first programming language,
the next ones are usually a lot easier to learn.

When I started out in the 1980’s, from a business perspective the dominant languages
were Cobol and Fortran. At home, the dominant language was Basic.

It was possible to work with a single language all your working life, and many
programmers did that with Cobol and Fortran.

That was in part due to the computer hardware at that time – it was very basic
compared to modern computers. It’s completely accurate to say that a modern smart
phone has more power than a large computer used by companies to services tens or
maybe hundreds of users back then.

The result of having more powerful computers, smart phones, game consoles and so
many modern appliances having computer technology in them, has bought with it more
choice of programming languages.

There is no one dominant programming language that serves all purposes.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 50

Companies that in the past may have chosen a single language, are now most likely
using several languages.

For example, Google uses a wide range of programming languages - Java, Python and
C++ are examples of these:

Source: https://www.quora.com/Which-programming-languages-does-Google-use-internally

So yes, I would recommend you learn more than one language which will give you more
career options.

However, don’t fall into the trap of learning a little about a lot of languages. I’d
recommend you learn your first language well (Java or Python are two good languages
to start out with, but there are many more) and once you feel comfortable, then look at a
second language.

This approach makes sense if you think about – people who can speak in several
languages started out learning their native language first as a child then mastered new
languages one by one.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 51

25. Do only nerds “fit in” when working as a programmer?


Society tends to or used to see programmers as something along these lines.

No offence to this guy either. I will start by saying that I’ve seen a lot of these type of
people who are great programmers, but these days I think you will find a pretty diverse
range of people working as computer programmers.

You certainly don’t need to be a nerd to fit in – you just need to be a computer
programmer.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 52

26. What opportunities are there for women as programmers


today?

Firstly, it should be pointed out that women actually pioneered computers as we know
them.

Jean Jennings Bartik, Betty Snyder and Grace Hopper are just 3 famous names of women
who contributed greatly to the development of computers:

Source: https://en.wikipedia.org/wiki/ENIAC
Source: https://en.wikipedia.org/wiki/Grace_Hopper

In 2018 there are more and more opportunities for women. I’m not going to say that
there is a 50/50 split of men and women in programming jobs as unfortunately that’s
not the case at the moment.

However, the landscape is changing, and companies are starting to make better
decisions on choosing the right person for the job.

One example is Intel pledging $300 million dollars for a more diverse workforce:

Source: https://www.cnet.com/news/intel-pledges-300m-to-build-a-more-diverse-work-force/

The problem still exists to a degree, but it appears to be reducing.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 53

Google’s work force has just under 31% of female employees, just a little up from the
previous year.

Source: http://fortune.com/2018/06/15/google-diversity-report-2018/

In my experience, more and more companies are now making smart employment
decisions, and it’s my hope that these numbers continue to improve substantially over
the coming years.

It’s my belief that there are lots of opportunities for women to become programmers in
2018 and it’s only going to get better as time moves on.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 54

27. Are online video course instructors, just failed programmers?


How does that saying go?

Those who can, do, those who can’t, teach.

Attributed to George Bernard Shaw

Source: https://www.quora.com/Is-there-any-truth-to-the-phrase-Those-who-cant-do-teach-If-not-
where-did-it-come-from-Do-people-still-believe-in-this-or-are-there-examples-in-common-thought-that-
go-against-this-idea

I think there can be some truth to this, but it is a massive generalisation.

Are there instructors out there teaching programming who are failed programmers?
Yes, no doubt.

This includes university lecturers, online course creators, and even programming book
authors.

But I’ve also met some great programmers who found their calling teaching. Frankly,
some people are in the business of helping people, enjoy doing it, and make a conscious
decision to leave programming and to teach.

This does mean you need to take care to check the credentials of any instructor you
come across to ensure that they have the skills you need and can trust.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 55

Another item to watch out for is people who have never programmer professionally
before, or never actually been a programmer teaching.

This happens more than you think. In my opinion, if someone has not worked
commercially as a programmer, they have no place teaching it. There is only so much
“theory” you can learn – if you want to teach others, then you really need to have been
in the trenches (working as a programmer for a company in a professional capacity) to
be able to teach properly.

If you can find someone who has done that (programmed professionally), you will
almost certainly find their training material is going to be focused on teaching you the
right way to program.

In todays “make money online” world, there are plenty of people who have never
programmed before creating online programming courses claiming to be experts. So,
you do have to be careful.

Once good sign to look out for to check out their website or portfolio of courses – if they
have a range of courses like programming, cooking, digital marketing, and so on, then
they are either a publisher like Udemy, or not a dedicated teach of programming.

In my opinion you should only buy from instructors who specialise in programming.
It’s ok to have a range of programming related courses, but they should be related to
programming. Indeed, I have 28 online video courses, but all are related to
programming. Computer languages, mobile app development like Android, enterprise
development using Java Enterprise edition, and so on.

In my opinion you would want the person you are trusting with your education to be
fully focused in programming and no other fields that are unrelated.

While we are here, there is another point I’d like to make. And that is, not everyone can
teach. You might find a brilliant programmer who is great at their trade but is a very
poor teacher.

Knowledge of a topic alone, is not enough to be able to teach effectively – teaching is a


real skill that needs to be learned and refined, and not everyone has the ability of
patience to do it well.

Sometimes the only way you will know for sure that your chosen instructor can teach or
resonates with you is to watch some of their material first – Many websites have a
preview capability that allows you to get a sample of their teaching material.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 56

28. Is it financially worthwhile to become a programmer?


In most industries if you are good or great at what you do then you will usually be paid
very well. The same is true in programming.

Expect a salary based on how much value you provide to your employer. Entry level
programming positions are usually paid pretty well compared to entry level positions in
other industries.

If the sole reason you are considering a career in programming is for the money, then
I’d say stop and ask if this is really for you.

In my experience, people who go into industries purely for the money often struggle
getting high paying jobs, because they don’t love what they do. If you don’t love what
you do, you tend to do the minimum work required, rather than doing all you can to
improve your skills.

People who love what they do, tend to work on improving themselves outside of work
hours as well, and this tends to bring improvements to their life in additional skills.

When I was starting out as a programmer, I spent long hours working on it, and once I
got my first programmers’ job I was still “messing around” outside of work hours with
programming. That’s because I loved doing what I was doing.

To be clear, I am not saying you have to love what you are doing or spend every waking
moment immersed in programming to build a successful career in programming.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 57

But if you do love what you are doing it will certainly help and make it easier for you in
the long run.

For the right people, yes, it’s financially worth it to become a programmer.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 58

29. Do I need a mentor to become a programmer?


Strictly speaking, no - you don’t need a mentor to become a programmer; I learned how
to program myself, without a mentor.

The right mentor can certainly help you though by giving you key insights and shortcuts
to help reach your goals.

They can draw on their industry experience and teach you the right way to go about
programming.

One on one mentorship can be hard to find – there is little to no point in working with a
mentor unless they really good at what they do. If your mentor is just a person who
knows more about programming than you do, it may not be the best approach.

If you are considering a mentor, then you want to make sure they are suitable qualified
to be a mentor and have the right skills with industry experience.

Technically anyone can say they are a mentor, but just knowing programming is not
enough to be a mentor. A mentor needs to have the skills to be able to move you
forward.

The next best thing to a one on one mentor would be to find an instructor you resonate
with and take their training courses – in some cases, you can get indirect access to them
via the support forum for their courses.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 59

You should not expect one on one mentoring in this situation – buying a course does not
mean the instructor is necessarily available for questions outside of the course content.

This is particularly relevant on the Udemy platform where the courses are so
inexpensive – that’s not to say you cannot contact the instructor for help outside of the
general support of the course but respect their decision if they don’t have the time to
offer one on one training.

In my opinion, a good online programming video course, with good support, is really the
main thing you need to become a programmer. That, and of course hard work and
persistence from you.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 60

30. I tried out programming, but I am stuck – is programming for


me?
I’ve got a great article for you to read on this topic.

Check it out here:

https://learnprogramming.academy/programming/programming-is-just-too-hard-for-
me/

Just know that this is a common challenge experienced at one time or another by people
learning how to program.

Not only that, it’s something people experience who are learning other skills as well.

Once you realise that this is just a part of learning, you can take some deep breathes
when you get stuck. Perhaps leave the keyword for a few hours or until the next day
and go back to where you are stuck.

So many times, I have found when I have done that, the things I was stuck on suddenly
makes sense.

Of course, if you quit as soon as you feel stuck you won’t ever realise that.

Persistence is important here, keep at it and with the right training you can success and
overcome those hurdles that pop up from time to time.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 61

31. How many hours should I study/practice per day


In general, my advice would be as much as possible. So, as long as you’re feeling alert
and motivated. When learning a new skill, everyone reaches a point that when they’ve
had enough for the day.

Maybe they are tired, or perhaps a little frustrated because something is not making
sense; or, there is a distraction nearby preventing optimal study and practice.

If you reach a point where you’re not taking in the concepts you are working with, or
your thoughts are elsewhere and not on the study material, it can be a sign that it’s time
to shutdown the computer and do something else.

Perhaps take a nice walk or do another activity, go and watch a movie, visit friends, or
get outside in the sun.

Or, simply leave it until the next day – I found that sometimes, despite my best
intentions, I just am not in the mood for programming, so I leave it and come back later.

Once I am in the mood I tend to get much better results.

This is very much an individual thing; we’re all different, and what works for one person
may not work for another.

Try and find the balance that works for you and to get into a groove.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 62

32. Why you should invest in your future programming career


If you are committed to programming, then you can assume once you’re skilled, it will
pay you a handsome dividend (by way of a programming job or perhaps programming
consulting for a client).

In other words, the skills of a programmer - once learned - can actually make you
money.

It stands to reason then that investing in your career by spending money on training
material and allocating time to go through the material is like deposit money into a bank
account (assuming the account pays interest).

In the same way that putting money in a bank can make money for you by way of
interest being paid or buying shares on the stock market can make money for you,
buying a course and studying it can achieve similar results.

From time to time, I receive a message from a student asking for free access to a course
saying they will pay for the course later, once they secure a job.

This is not how investing works – the bank does pay you interest before you put money
in the bank – you don’t make money in the stock market until you buy some shares.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 63

It’s not just investing. In general, this is how life works – you buy the item you want
first, and you reap the benefit afterwards.

Realise that investing in yourself first is going to reward you in the long run.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 64

33. Are you too old to learn how to program?


No! Just yesterday I was communicating with an 84-year-old man who has taken a
number of my courses, and gave me some valuable feedback.

He loves programming as it keeps his mind active.

I remember when I was about 18 (early 1980’s) I met a man in his late sixties who
absolutely loved programming.

He said it was a passion for him that he found only once he’d he retired. He wished he
had found programming earlier but was glad to have found it now and was working
hard to learn it.

So, no, it’s never too late to start. I’ve met or communicated online with countless
people who started programming in their 50’s and got their first programming job as a
result.

Do not let this hold you back – it’s never too later to start. Refer to a previous section in
this e-Book where I discuss switching careers where you have worked in one industry
for a while and want to change.

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 65

34. Are you too young to learn how to program?


Same answer – no. I’ve got 8-year-old students in some of my courses. If you have the
interest to get started in programming, then get started! If you have a child who is
interested, then I would say you should consider giving them access to the right
materials to learn.

Scratch is a great language for children to get started with:

https://scratch.mit.edu/

Here is a story about a 10-year-old kid who creates apps and has already met Tim Cook
(CEO of Apple).

https://www.smh.com.au/technology/apple-wwdc-10yearold-app-developer-from-
melbourne-meets-tim-cook-20170605-gwkejp.html

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 66

35. How do I get started?


If you are serious about getting started, then I am going to suggest you make an
investment in yourself by taking one of the 28 courses I have available.

A full list of all my courses on Udemy are available here:

https://LearnProgramming.academy/

For just $10 (US dollars) you can have lifetime access to a comprehensive course that
will teach you how to become a programmer.

My “top 4” recommendations for programming language courses are.

Java course - https://LearnProgramming.academy/courses/complete-java-


masterclass/

Python course - https://LearnProgramming.academy/courses/complete-python-


masterclass/

C++ course - https://LearnProgramming.academy/courses/beginning-c-programming-


from-beginner-to-beyond/

C course - https://LearnProgramming.academy/courses/c-programming-for-
beginners-master-the-c-language/

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 67

If mobile app development more takes your fancy, take a look at these.

Android Kotlin course - https://LearnProgramming.academy/courses/android-kotlin-


development-masterclass-using-android-oreo/

Android Java course - https://LearnProgramming.academy/courses/the-complete-


xamarin-developer-course-ios-and-android/

Xamarin (Android and iOS) course -


https://LearnProgramming.academy/courses/android-java-masterclass-become-an-
app-developer/

Any one of these courses will teach you valuable software development skills, and you
will come away with skills you can take into your next job.

Having personally taught close to 400,000 students, I regularly receive messages like
this from students taking one of my courses:

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 68

Life changing stuff.

I’ve taught close to 400,000 people how to program, and I can teach you as well. Why
not get started today?

Copyright © 2018 – https://learnprogramming.academy


Tim Buchalka’s Programming Career Guide 69

I’ve made this as easy as I can for you. It's a no-brainer price and it’s created for
beginners. No previous experience required.

You will get instant access to the videos. The sooner you get started, the sooner you will
reach your goal.

Here is the link again to see all my courses.

https://LearnProgramming.academy/

I look forward to working with you.

Oh, and one last thing. If you have any other questions relating to your career, then visit
my blog at the link below and ask away – I will personally answer any questions that are
posted.

Ask your questions here.

Cheers,

Tim Buchalka

Copyright © 2018 – https://learnprogramming.academy

Das könnte Ihnen auch gefallen