Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
April 23, 2022 08:22 pm GMT

Most Important Things to Learn other than Coding...

The quintessential skills...

FreePik Vector

Introduction

Out of all the people Ive seen who start their journey of becoming a programmer, they usually begin by attending a 6 month Bootcamp, getting a CS degree, or simply just going through sites like Udemy, FreeCodeCamp, and Youtube. The options are countless and all are great resources to learn. People usually start by learning programming languages and thats how it should be. But in doing so, they get into a cycle of learning new languages, frameworks, etc and it keeps going on and on. They miss learning the essential stuff that is as important as learning that first language.

One thing that I noticed that was common in all of these learning methods was that none of them were teaching the students the tools and methods that almost every developer should know. I was also one of these students. I started with Python, HTML, CSS, and Javascript and went ahead applying to jobs way before I had any idea about Version Control, Linux, Shell, Scripting, etc. All of these are crucial tools that immensely help programmers in solving complex problems fast. This stuff is practically a requirement for getting a job as a developer. Not learning these tools and getting comfortable with them is like running with your shoelaces open; you can do it for sure but sooner or later youre going to fall.

I have seen a lot of developers in the industry who arent even comfortable using the Terminal! There is a change now in some of the courses that teach students to have a basic understanding of these tools but there are still a lot of courses and boot camps out there that skip over this stuff. A university CS degree will teach you everything from Data Structures and Algorithms to Machine Learning but usually spends very little time on these topics.

My motivation to write this article came when I was thinking of new ideas to write about and I recalled my situation when I started working professionally and how I had no idea about Linux commands or What is a Shell? and my personal favorite, Yeah, of course, I know Version Controlhehe. I thought I cant be the only one who was in this situation. So read on ahead about the tools and other tech stuff that you must know while youre starting to learn to code and after a few weeks, you can feel like this:

Hackerman Meme

Note There are certain tools I have listed at the end of this article that you can go ahead and skip for now as a junior developer or if youre just starting to learn to program but the four that I have mentioned below are non-negotiable in the sense that you absolutely must learn them to be more efficient and expand your bag of skills. Ive also mentioned a list of resources for every tool to learn it easily and many of those are the ones that have helped me greatly and they would be my recommendations.

1. Linux OS

Linux - WallpaperFlare.com

This one is non-negotiable, the king of all the Operating Systems, especially for developers. There are dozens of reasons why you should use Linux but even if you dont want to use it, learning it is a great asset for developers because most of the servers run on Linux, its the most secure and stable OS out of all the popular ones out there, its highly customizable for personal use, it has a great community for Linux users out there. Apart from all this, my two favorite things about it are that encourages people to solve problems on their own and its open-source and free!

Resources to learn Linux:

  • Youtube Linux Operating System Crash Course for Beginners and 50 most popular Linux Terminal Commands by Colt Steele from freeCodeCamp. These are more than enough if you are learning from Youtube. If free resources are what youre looking for then youtube is the way to go.
  • edX, Coursera, Pluralsight Many online popular platforms have a ton of courses and full-fledged Bootcamps.
  • Colt Steele's Linux Course - I learned Linux from this course because I like Colts method of teaching. Its clear to understand and its at a healthy learning pace along with great exercises that challenge your skills. His Web Development course was the first course I ever enrolled in and it taught me a lot of things when I started so I am a little bit biased towards his teaching.

2. Version Control

Vasil Enchev - Dribbble

Once again, a non-negotiable thing to learn. Version Control is an extremely important tool to manage, work and collaborate in a professional environment. There are a lot of tools out there, the most popular being Git and its online counterpart, GitHub. Sometimes also known as source control, it helps the developers to keep track of their codebase, create multiple repositories and just revert to the original changes if and when mistakes have been made. And mistakes are made a lot.

Version Control provides a way for developers to fix their mistakes and minimize confusion among different teams. People use it for their projects and big organizations which continuously update their products use version control among their teams to avoid any future disasters. And GitHub is being used by not just developers but artists, lawyers, business people, and even writers to manage their works. So, it just goes to show how invaluable this tool is. Many other tools can be used for source control but we are going to stick with Git and GitHub here. Other popular examples are Bitbucket, Mercurial, Beanstalk, Gitlab, etc.

Resources to learn Version Control:

  • Again, Youtube is the way to go for learning Git. A myriad of videos teaching the basics as well as advanced git commands to make you more productive is readily available. Programming with Mosh and freeCodeCamps Git Tutorials are some of the top searches for learning Git. Shoutout to Fireships Advanced Git Tricks video if youre already familiar with Git and want to become more productive using it.

  • I learned Git from Colt Steeles GitHub Course as well. I bought the Linux and GitHub course at a discount as a package deal. But I would recommend the Youtube videos for this.

3. Command Line and Terminal

Terminal - Macpaw.com

This one is kind of connected to my first and second points. If you already know Linux and Git then you have no problem navigating around the Terminal. Apart from Linux, if youre using Windows or Mac which most developers do, you should know at least 1020 commands for their respective command lines to make your lives easier. Windows has the PowerShell and the Mac has its own Terminal.

The reason to learn the command line is that developers can have greater control of their machines and their operations and it improves the general workflow. Some of the other obvious reasons are that all the popular tools I mentioned above use the terminal, so it's like a win-win. Many tools like Docker, Vagrant, Kubernetes, etc run on command-line environments.

Resources to learn Command Line:

  • These are mostly the same as the stuff for learning Linux but if you want to learn Powershell or the mac terminal, there are a lot of free documentation and videos available highlighting their most-used commands daily for a developer.

  • Windows Subsystem for Linux and the Windows Terminal are also great tools for windows users who want to use Linux environments on their laptops. These are the ones that I use mainly while working on projects.

4. Data Structures and Algorithms

Freecodecamp DS Algo

There is not even a question about this one. All the top tech companies in the world require their developers to get comfortable with Data Structures and Algorithms. You need them to solve complex problems, you need them to handle billions of units of data, and you need them if you want to work at the Big 5 which are MANGA (Meta, Apple, Netflix, Google, Apple) though there are many more other giants in the industry. No wonder their engineers stand out from others because they are phenomenal at solving algorithmic problems.

Learning DS and Algorithms makes you a better programmer, a persistent one, and gives you the ability to think logically. There are always multiple ways to solve a problem and every engineer has a different thought process.

Even if you dont get the correct answer the interviewer is looking for in the interview but the way you approached the problem was logical and efficient, chances are that you will be considered for the job. So to conclude, learn data structures and algorithms, end of the story.

Resources to learn DS and Algorithms:

This is the one thing that I still havent learned but am planning to do this year. So I have compiled a bunch of resources which I will refer to while learning it and you guys can also take a look at it.

  • I am in no way a book learner. I like to watch videos and follow along with the courses. But I found Grokking Algorithms by Aditya Bhargava interesting because it teaches you all the core concepts of programming through visualizing them. Visual medium for learning is my preferred choice and this book manages to do that by interesting diagrams and doodles explaining the fundamentals. So, if there is any book that Ill ever read for learning purposes, this would be the first one.

Grokking Algos

The above are the four main things that every developer MUST learn or know when they are starting or are junior developers, at least according to me.

Important Note If you want to learn Linux, Shell, Git plus some extra things along with them all from one single place, then MIT has a great set of videos titled The Missing Semester of your CS education which focuses on all the topics that I have discussed in this article except Data Structures.

Just remember that there is always something new to learn, it can be a new framework or a library, maybe a new language. The use of them may vary from role to role and also whether someone wants to learn that technology personally just for fun. Here are some of them that I think can aid developers depending on their roles in the organization but are not necessary requirements to get entry-level jobs in the industry:

  • CI/CD Workflows

CI/CD 3D Vector

The DevOps industry has picked up a lot of pace in the past decade and with the introduction of popular software like Docker, Kubernetes, Jenkins, and many more new CI/CD tools, the roles and responsibilities of software developers have also changed a little bit. These days, every developer is expected to know a little bit about DevOps methodologies and how CI/CD works with some knowledge about the tools utilized in the process.

  • Data Science and Machine Learning

The concepts and fundamental ideas of data science and machine learning are very thought-provoking. But they also depend on the type of job that youre applying for and it doesnt hurt to know the basics. Most popular courses usually use Python for Data Science and the R programming language.

  • In addition to all of the above, there are a huge number of relevant computer science topics ranging from cryptography and security to system architecture, system design, and computer networking. No one can study all of them obviously and every field of computer science has its experts researching new technologies every day. At the end of the day, it all comes down to an individual's personal choice.

I am also listing a bunch of bonus resources down below that in my opinion can help a newbie in the field of Computer Science become a complete software engineer. These include enough resources and materials that range from periods of 3 months to 4 years worth of study!

But not all of us have the time to follow along with an undergrad degrees level worth of study and thats why you can pick and choose whatever you want to learn after you clear up the core concepts. Check them out here:

  • John Washams Coding Interview University Over 215k stars on GitHub.

  • TeachYourselfCS A high variety of subjects ranging from Math for CS, Distributed Systems, and Architecture.

  • OSSU Another popular GitHub repo mimicking an undergrad CS degree with over 2 years of helpful content.

  • Harvards CS50 Harvard Universitys most popular course and it's free! Need I say more?

  • The Odin Project A highly successful resource for learning Web Development.

  • freeCodeCamp Everyone in the software industry is familiar with this organization as well. With over 3000 hours of content on their website and more than 1000 videos on their Youtube channel, its my go-to resource for learning something new.

And that was it for this one! Hope you guys found it helpful. Let me know if I can make some additions or changes to this article or if I missed some other important tools that every developer should know. My objective for writing these articles is always to give back to the community which has aided me tremendously to become a good programmer.

Connect with me on GitHub, Twitter, and LinkedIn. Ciao!


Original Link: https://dev.to/thepiyushmalhotra/most-important-things-to-learn-other-than-coding-1hm6

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To