Learn your basics or steps to be a successful Junior Developer

Photo by Zan on Unsplash

Hello I’m Lucas, I started Web Development last year and I work now at my first web developer job. I started web development with HTML5/CSS3 and then moved on directly to PHP and JavaScript . Well this is cool but I realized at my job that I was really missing a lot of basics and foundations about computer science and programming in general. If you do not have a mathematical / engineering background sometimes this can be challenging at your first job, because you’re just missing basics. So I’ve decided recently to put my head around the basics concepts and foundations of CS and Programming.
I felt lost, not knowing where to start. So, after searching many resources and watching a lot of videos about this I actually took some notes and I want to share it with you guys.
Hope this can help someone out there in the same place as me 😃

Let’s start !

Foundations

1 — Embrace the correct mentality

It takes a good mentality, If we are just coding without interest or because we just want that salary at the end of the month, well our mental will tire us up. We need to know how to work and learn and actually liking it and giving it a real value.

A good book but a bit extreme for this kind of mentality is « Deep Work » by Cal NewPort. You can read it but don’t need to go into full deep work mode, just maybe fix some schedule in your agenda to work things and create an habit, and also try to spend less time in social media. Don’t need to quit social media of course, just disable notifications you’ll be fine. And if you’re really addicted just try to delete the app from your phone for a couple of days see if you feel a difference 💥

2 — The art of solving problems

The job of a developer/programmer it is not to make web pages, write some tags on a text editor. The real value in a developer’s job it is the art of solving issues/problems. For some people this kind of skills comes naturally, for others like me that are not that logical we need to work.
How do we work problem solving ? Well I think a good way is to practice algorithms. Practice it in your favorite programming language if you are confortable with it or even « better » in a piece of paper or in pseudocode, because this allows you to see things differently and not worry about your language syntax but truly worry about the solution for your algorithm(problem).

3 — The many types of data

Next, we need to know the different type of data. So what is a string, an int, a boolean, array, etc .. Learn a bit how to work with them, retrieve something from an array and then put it back in, reverse a string, those kind of stuff.

4 — Implement control structures

So control structures are conditions, loops, functions … This is basics you’ll find in mostly every language and you’ll use very often. This allows you to implement logic to your algorithms, your code.

5 — Learn some principles

Well, principles there is a lot of them, they’re concepts that are shared with multiple languages. It is still a bit vague for me but I can think of things like “What is a runtime ?” or “What are Asynchronous/Synchronous ?” for example.

There is also all the principles based on clean code and good writing:
DRY(Don’t repeat yourself)
YAGNI(You are not gonna need it)
KISS (Keep it simple, stupid)

This are principles you should try to follow.

Work Environment

It is important to a developer to know his tools and his work environment, feeling confortable with it.

Photo by Pankaj Patel on Unsplash

→ So you need to learn how to work with your shell in your OS, learn basic commands like create files, delete them, create directories (folders), copy them, looking into them, open them…
→ Also if you have the time maybe do an introduction to shell scripting, it can be really useful in the future.
→ Choose an IDE/Text Editor and learn how to work with it.
→ Learn Git, basic git commands and understand how to add files to git commit and push them, create branches etc..

This will be useful to work with a team at your developer job 😃

Different styles of programming

Here you can learn the difference between imperative programming, object oriented programming or even functional programming.

Just to have a clear idea about the different styles of programming.

Those different ways of programming are called Programming Paradigms.

Photo by Emile Perron on Unsplash

Learn a language (choose your path)

Now you can really choose and learn a language. Of course this depends also of what kind of development you want to do:
→ Web Development ?
→ Mobile ?
→ Software Development ?
→ Video Games ?
→ Data ?
→ What do you want to build ?

You can also choose languages that are quite versatile and can be used for multiple purposes, I can think of Python or Java for example.
Just choose what you feel like learning and you can then put all your basics and foundation into action by building programs, apps, whatever 🤩

Some resources to help you get started 😆

Photo by Aaron Burden on Unsplash

CS50: Introduction to computer science This is a free course given by Harvard , you can find it online easily.

CS50 2019 — Lecture 0 — Computational Thinking, Scratch

CS50’s Introduction to Computer Science

Learn enough platform. Here you can find how to work with your command line, git and other stuff

Learn Enough to Be Dangerous

Learn shell Here you can learn more about your shell by practice.

Learn Shell — Free Interactive Shell Tutorial

Web Developer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store