A few broad topics every new developer will want to learn

Prahlad Annamraju
Published in
4 min readMar 13, 2018

--

As I mentioned in the previous article about shutting out all the noise, there will be tons of new concepts that may seem foreign to you. However, you will eventually need to work your way through the mess and learn different tools and concepts that will make you a better programmer.

Let’s visit a few broad topics & tools, and some personal thoughts.

Text Editors/IDEs

Keep it simple. Use Atom, Visual Studio, IntelliJ, or another popular editor for the language you’ll be working with. You really shouldn’t be spending a single penny on enterprise level IDEs.

Code completion, indent guides, and a clean visual-first layout is absolutely crucial while learning the ropes. You’ll often hear that these handicaps will prevent you from being an adept developer, but it’s more harmful to pick up bad habits related to syntax or formatting.

Anything but Eclipse. Please.

Git & Collaboration

Collaboration in tech is inevitable, and Git, in a nutshell, is a way for multiple contributors to add, delete, and change multiple files, whilst maintaining a timeline of all changes to a granular level. Most companies that you might end up at will likely run a Git variant internally, so going in with this knowledge will help ensure you don’t fall behind. Check out this perfect guide on Git.

Git allows you to easily revert back to previous versions, and build features and fix bugs independently of the main code base, so as to not disrupt production code until you’ve had a chance to test completely. I’ll leave it at that and let you read for yourself, in the interest of saving it for the experts!

Most open source projects are maintained on GitHub or BitBucket, so give contributing a shot! Don’t be scared to commit to open source projects, because if your code has the potential to break things, it won’t get approved to begin with. Perhaps you could start off by making documentation changes to fix grammar & spelling.

Data Structures & Algorithms

Data Structures are simple. Structures, represented in code via classes and objects, that are created with the intent of storing, manipulating, and accessing data. Now this ‘data’ could refer to simple integers and strings, or more advanced objects. A key point to note, and one you will learn with time, is that each data structure will have its strengths and weaknesses, and you will want to use the right one(s) for the right job.

Algorithms, on the other hand, are a set of very specific rules that have the sole purpose of generating a desired output given an input(s).

For example, imagine walking from your house to your local cafe. The directions you take and the decisions you make constitute just that, an ‘algorithm’. The point is to not get frightened by the fancy wordplay. There’s enough buzzwords in tech.

The reason you’ll often see Data Structures & Algorithms grouped together is because they live within the context of one another. You will often use data structures to complete your algorithm, and if you’re tasked with manipulating data within a data structure, you’ll have to create an algorithm.

If you’re an absolute beginner, I recommend doing a module on CodeAcademy, because they touch on basic data structures such as arrays. Afterwards, begin reading up on more advanced data structures such as Linked Lists, Hash Tables, Queues, Stacks, Trees, & Graphs. As you study these, you will encounter many famous algorithms that incorporate variants of these data structures to accomplish tasks, such as searching, traversing, sorting, and more.

Watch YouTube videos and learn the fundamentals of different data structures, so you can begin to apply them practically. A great book (textbook, more accurately) is The Algorithm Design Manual. It’s quite heavy, but very well written.

Oh, you’re going to want to know these inside and out when you’re preparing for interviews, but more on that in another post.

Command Line/Terminal/Bash

I’ll admit, I rarely touched the command line before I started to learn how to code, but I wish I had. Learn it, and learn it well, because you can increase your productivity significantly if you know how to use it to its full potential. At some point in your coding process, you’ll use these for building or deploying your applications, running Git commands, making calls to APIs, installing programs, and for a myriad of other purposes. Of course, there will more than likely be easy-to-use, visual, GUI based alternatives, but if you have some time, it won’t hurt to learn!

However you choose to approach learning new concepts, remember to make it a point to understand the why. Memorization is the best recipe for failure and will prove to be disastrous, both in your interviews and in your future career.

This is #3 in a series of articles intended to document my self-taught journey into the world of computer science. I’ll be sharing my experiences and tips that I’ve learned over the past couple of years. Check out #4, being resourceful, or have a look at all of my posts!

--

--