The 2020 Starter Guide To Breaking Into Programming for Beginners

Programming can be a hard field to break into — especially if you’re brand new to the industry and don’t know where to begin.

At the beginning of the decade, the Internet and its code related resources were possibly a sliver of the size it currently is now. As more developers find time to contribute back into the ecosystem, our interconnectedness has seen immense growth over the past 10 years.

While this is amazing, it can also be overwhelming.

Here’s a guide that strips back the noise aimed at giving a focused path towards getting started.

Below is a summary of the contents to help you navigate through this guide. If you’re on desktop, you can use ctrl + f functionality to help you move around.

#top
#1: Start with The Why
#2: The Good and Bad Parts of Being a Developer
#3: The Budget
#4: The Different Parts of Dev Work
#5: Constructing Your First Portfolio
#6: Applying for Jobs
#7: Where to From Here?

#1: Start With The Why

This is your career.

What many often miss when it comes to careers is that its an integral part of your life. You will be spending a good chunk of your time doing this thing.

When you start with your why, it can help you through the hard patches of learning — because let’s be honest, some parts of code can be quite mind-boggling.

Some of us are enticed by the potential paycheck it promises, others like the idea of solving problems. For me, I got into programming because I wanted to make things happen. I’m always brimming with ideas and programming is a tool and bridge to help me achieve my goals.

When you know your why, it is also good to remind yourself of your goals and reason for coding on a regular basis because its easy for your job, your boss, your peers, and even you, to derail away from your true path.

So always remember your why — why you’ve decided to start the dev journey, why you’ve decided to invest in the time to learn and grow in the field.


#2: The Good and Bad Parts of Being a Developer

There are good and bad parts when it comes to any career choice and being a developer is one of them.

Here is a list of pros and cons, and things you should consider in order to thrive as a developer.

The pros:

  • the paycheck — six-figure salaries in the dev world is not a myth but it does take a couple of years to work towards unless you’re working at a place that’s got a bit of budget
  • the potential to work remotely — you don’t have to be at the office all day, every day. A lot of companies are warming up to the idea of remote work with office days to schedule meetings.
  • transferrable skills — the knowledge you have extends beyond borders and you can take it almost anywhere you want. You can move countries and still remain relevant.
  • high demand — according to the USA Bureau of Labor Statistics, the job outlook is predicted to grow by 17% between 2014 to 2024. This is massive when taken into comparison with the average growth of 7% for other sectors.

The cons:

  • the competition — let’s be honest, the easier it is to start something, the higher the chances of others doing the same. As the art of programming becomes more accessible to others, the level and pool of competition increase proportionately.
  • stress — when it comes to being a developer, there are constant deadlines, bugs that don’t make sense, inherited code from others, bad frameworks and implementations, late-night deployments and just plain old stress from learning but never seem to quite keep up with the ever-changing landscape.
  • potentially long hours — the work doesn’t stop when you get home. Sometimes it follows you. Then there’s the learning hours you need to put in on the side in order to keep up. For new developers, hours can be long and grueling.
  • sedentary lifestyle — a majority of your time will be spent behind the screen. This means that you won’t be moving a lot at all, which can be bad for your health in the long term.

Things you should consider:

  • your temperament — sticking power is something that’s required to be a successful developer and excel at the code creation process. A great deal of patience is required, especially during the learning process. How you learn also matters. There are a lot of digital learning resources, which are often self-paced and disconnected from actual people. If you’re not too good with isolated and self-directed learning, you might find it hard to thrive in the field.
  • your social and family obligations — while you might not turn into a basement cubicle recluse, learning to code and the work involved with code does take up a lot of your time. If you’re not careful, it can take over yourself completely. Your family and friends might not understand at first but everyone needs to be on the same page when it comes to your career. Some partners would rather watch a movie with you than see you stress over code that won’t compile because the tutorial failed to mention the node package version.
  • commitment abilities — when you turn code from a hobby into a full-blown career choice, you are also becoming committed to the life long journey of continuously upgrading your skills and knowledge domains. You need to be clear with what your commitment abilities are in terms of time availability and be actively consistent with it. This is because if you’re not, you risk it taking over your life or fall behind. Figure out how much you can commit to upgrading your skills without it infringing on other parts of your life.
  • your expectations — not everyone starts off with a six-figure salary. Most of the time, we’re looking at around $45k to $55k for junior developers. This number also depends on where you are in the world and what kind of company you end up working for. Startups tend to have a lower budget but a higher chance of accelerated growth due to the way they’re set up.

#3: The Budget

Learning to code is an investment. In addition to time, there may be a few things you need to consider that requires a monetary component to it.

The hardware

This is a question that a lot of beginners ask but no one really answers properly. In the grand scheme of things, anything with a 7-core chip will do just fine. My Dell XPS i7, originally bought in 2012, managed to survive quite well up until May 2019. I’m currently running an ASUS Ryzen 7 laptop for most of my coding activities.

In the past, I’ve been given numerous laptops to work on through work. 5-core chips tend to lag when you have multiple screens and consoles running, occasionally crashing if you have more than 3.

If you chose a laptop as your main dev machine, some programs like Android Studio will drain your battery and but a lot of load on your ram.

You don’t need to spend an arm and a leg for a dev machine. From what I’ve seen recently, the pricing tends to go up as the thickness of the overall machine goes down. Don’t get side-tracked by the size and look at the actual specs instead. You can still get a 7-core, 1TB and minimum 16 ram laptop for a decent price and be able to code most things without issue.

The software

Most dev related software is free and open-source. Visual Studio Code, for example, is one of the most popular code editors with free community-driven extensions.

When it comes to the Windows vs Mac OS debate, it really depends on what you’re trying to achieve with your code. If you want to start off with Apple mobile development, you’re going to need an Apple computer. However, a Windows machine will still be able to cover the rest of your other development work.

The courses

When it comes to becoming a developer, we often think of the computer science degree track to get in. Over the past 10 years, the industry has morphed and changed to accommodate for life long learners, resulting in Bootcamps and online courses that give you an alternative track to the traditional degree pathway.

While there is nothing wrong with a CS degree, just remember that it is one of the numerous ways nowadays to get your foot into the door.

Here are a few places that can help you kickstart your programming career:

Udacity Nano Degree

Udacity contains a number of courses aimed at getting you started in the field and has projects that are evaluated by real and vetted tutors. The course structure is a mix between self-paced and time directed.

The cost of a nano degree depends on how quickly and committed you are towards completing the course you enrolled for. This is because Udacity charges on a monthly subscription basis and in a way, this is a good thing because it motivates you to complete your course in the expected time frame.

Coursera

Coursera is a free platform with the opportunity to do a paid certified degree and certifications for approximately half the price of a traditional, on-campus CS degree.

Courses are run by Universities from around the world and often have a defined start date with content that often reflects the same quality as you’d get on campus.

EdX

EdX is an online learning platform that includes participation from Ivy League members like Harvard, Princeton, and Brown. Other members include brands like IBM, Microsoft, and AWS.

The courses available are often open, self-paced and free, with the option of getting certified officially for a fee. There are short tracks available called MicroMasters. These tracks often contain a few but selective courses in them to give you in-depth knowledge of a particular subject or topic.


#4: The Different Parts of Dev Work

When people think programmer, they don’t realize that there’s more to it than just code. Here’s a summary of the different parts that you’ll encounter in the programming world and where you might end up as a developer.

Frontend

The frontend is what you see. It is the interface and beginning of any general public-facing interaction you might get when it comes to code.

A lot of developers nowadays start out in frontend development, especially self-taught tracks. This is because most of it is based on a trinity of HTML, CSS and some form of JavaScript.

The thing with frontend being so easy to pick up is that there is also a lot of competition. To distinguish yourself, you’ll also need to explore non-coding related topics such as design, user experience, patterns, and typography.

Knowing how to code for the frontend is no longer just enough. The understanding of design has become an integral part of the dev work because you need to, at the very least, be able to speak in the same language as your designers as well.

Backend

The frontend is mostly useless if it’s not connected to a data source. The backend acts as the bridge that processes and determines how data is stored, retrieved and formatted.

There isn’t much to it, not really — just a mountain of methodologies and architecture for code growth, data management, and sessioning.

When you start out in the backend, it may seem like it is just an end to a means to make the frontend useful. However, the complexity of the backend lies in its ability to succinctly deal with data and how it persists.

Infrastructure & Architecture

At its simplest, putting your code on a cloud box like a Digital Ocean droplet or AWS EC2 instance can feel like an easy task. Complexity arises when you have to think about scalability, automated processes and how not to balloon up your hosting bill to a price you can’t afford.

Getting certification in infrastructure often means you specialize in a particular cloud product such as Google Cloud, Microsoft Azure or Amazon AWS. These certifications can lift up your salary a significant amount as not many people tend to choose infrastructure and architecture as the starting pathway.

Why? Because it’s not as shiny or visible as the front and backends — yet still a necessary component if the company goes through an accelerated growth phase and where their code and data lives needs to match the demand.

Languages & Frameworks

There are many languages and frameworks to choose from. The most popular one right now is JavaScript.

While it is arguable that it is not a ‘proper’ programming language per se, it’s application and usability across different spaces allows you to achieve many things by just knowing that one thing. A lot of web technologies and implementations nowadays boils down to JavaScript.

If you’re looking to get into mobile development or game-based things, Java and C++ are good options to start with. They also come with frameworks that lets you implement a frontend that is pre-processed in the backend as well.


#5: Constructing Your First Portfolio

Figuring out what to put in your portfolio is a hard one, especially if you haven’t made one before. Having a portfolio can help you land a job faster than not having one. This is because it helps back up whatever claims you made in your resume.

Here are a few pointers and ideas to get you started.

A frontend implementation

Everything needs an interface. Why not show off your frontend skills with an implementation that incorporates HTML, CSS and JavaScript in a concise and succinct manner.

You can use a framework like Angular or library like React to implement a single page application. A todo list is over done because it’s usually used as the starting point of a tutorial.

Here are a few frontend app ideas you can boot up in 24 hours that takes the ideas learned in a todo list app and recode it in your own version.

  • a weight tracker
  • a notes app
  • pomodoro app
  • bill tracker app
  • a calculator app
  • a wishlist app

If you wrap it frameworks like ionic, it can also double up as a mobile app as well.

When you’re creating your frontend apps, be sure not to rely too heavily on bootstraps and css that someone else wrote. While it aligns with the concept of rapid development, if you’re new the game, you want to properly figure out where you stand on the spectrum of skills, which means doing as much of the design and design code on your own.

A backend implementation

You can take the above ideas one step further and create a database and backend for them.

This means you’re creating your own data structures, figuring out how to query them and process them in a way that’s accessible by the front end via APIs. If you launch it to the cloud, it also lets you get hands-on experience with infrastructure technologies — something which you can also legitimately add to your resume.

A lot of the backend during the development phase is on your local machine. This means the ability and knowledge to set up an automated process flows to reduce inefficiencies. If you’re doing something manually, ask yourself, can this be automated?

If the answer is probably yes but you don’t know how then it’s time to hit Google.

Integrate an API

If you don’t have backend as part of your toolkit, then another route to take in conjunction with your frontend is to integrate an external API. There are a few open and free APIs out there.

RapidAPI has a list of free APIs that they host on their platform. eBay also has an API that you can use to search categories, post things for sale and display listings.

Census Bureau has a selection of APIs that you can use to access information compiled via the census on demographics, population, and economic data. You could have a lot of fun with search queries and graphs for this kind of data.

On the fun side, Marvel Comics has an API gives access to information on Marvel’s 70 years’ worth of comic-related data. I haven’t personally checked out this one but look like something epic can be built from this kind of data.


#6: Applying for Jobs

Applying for a dev job can be a daunting and potentially long process. If you want one that’s ready to take you once you’ve finished your studies or course, then it’s best to apply while your doing your program.

This is because it can take anywhere between a month to three months for the selection, interview, and technical test process. Some companies do take a while to get back to you.

The main advice is to build up as much of a portfolio as you can and construct your resume in a way that’s information-rich but not crammed to the edges in 5pt font. Avoid using stars or skills percentage (you know the kind that says 85% skilled at JavaScript) because it takes up unnecessary space and the potential employer doesn’t know against what metric you’ve used to come up with that number.

Be succinctly informative. If you haven’t got any relevant job experience, use your portfolio as the stand-in. Be sure to know what spectrum of the stack you specialize it and highlight it as a majority part of your resume accordingly.

But the most important part of all in the job application process is not get disheartened. Like any job market, it’s a matter of getting in and you can go from there.


#7: Where to From Here?

Once you’ve completed a course or two, made a few apps on your own and figure out how to code without having to follow a walkthrough from a tutorial, you’re ready to create code in the real world.

The journey upwards often requires time outside of work and you’ll continue to feel like a beginner for a very long time. To overcome this, you need to collect new knowledge points — both in breadth and depth towards a subject or language.

The more knowledge you have, the easier your projects will become, along with your ability to solve problems on the fly. As a beginner, endeavor to make mistakes and as much code as you can. It will help you recognize your inefficiencies and predict where things can potentially go wrong.

Comments

0 comments

About Author /

I code. I write. I hustle. Living the #devLife remotely. Subscribe to my newsletter to stay connected with my latest posts and dev thoughts.

Leave a Comment

Your email address will not be published.

Start typing and press Enter to search