Top Techincal Skills for Becoming a Successful Developer
Tags: career, codenewbie, beginners, webdev
Published: 2020-04-24 02:35:02

**Subscribe to my email list now at http://jauyeung.net/subscribe/**

**Follow me on Twitter at https://twitter.com/AuMayeung**

**Many more articles at https://medium.com/@hohanga**

**Even more articles at http://thewebdev.info/**

If you want to become a successful developer, you have to learn more than writing code to become successful.

In this article, we’ll look at some technical skills that you need to become a successful developer.

Data Structure and Algorithms
=============================

Most of the time, developers are thinking about how to solve problems, and data structures and algorithms are the basic building blocks of solving problems with code.

They’re also needed to pass interviews if you ever want to get a job, where you may need to solve some data structure and algorithms on the fly.

Therefore, we all need to know about basic data structures like linked lists, arrays, and trees.

Basic algorithms like sorting, recursion, and iteration are also must learn skills.

To practice them, go to [Geeks for Geeks](https://www.geeksforgeeks.org/) or [LeetCode](https://leetcode.com/) for plenty of problems to solve.

**Popular Programming Languages**
=================================

Learn some popular programming languages so that you can start using them anywhere. They’re popular because they’re used by companies to develop their software, so it’s time to learn them by practicing at home.

You may also be asked some trivial questions about them in interviews, so it couldn’t hurt to learn them.

Popular languages like JavaScript and SQL are used by web apps a lot, and Python is used for data science.

JavaScript is the only programming language for front end development and SQL is the most popular query language for databases.

Java is popular for enterprise apps. So at least those are worth learning somewhat.

**Source Control**
==================

Source control is needed to keep track of changes in codebases so that we can revert bad changes and merge everyone’s changes together.

Git is probably the most popular version control system. It’s a decentralized version control system so that the code repositories are distributed in people’s computers.

With decentralized version control systems, we have to learn how to check-in and check out code. Also, we have to learn how to push and pull code from remote repositories.

Also, we have to learn how to fork and make pull requests to make a copy of other people’s repositories and to ask others for review before merging code respectively.

**Text Editors**
================

Text editors are used for editor source code. Many projects can be written with just text editors alone.

Projects that are written in interpreted languages can be written with text editors, while ones that are compiled like Java may need an IDE.

Learning keyboard shortcuts for them is also important for speeding up development with text editors.

Popular text editors include Notepd++, Visual Studio Code, Sublime, Atom, etc. So take your pick and see which one is right for you.

**Integrated Development Environments**
=======================================

Integrated development environments (IDEs) lets us create and modify code projects and files. We can also run and debug code with it.

They provide all the tools to write, debug, and compile code all in one program. They are especially useful for projects that are done with compiled languages like Java and C#.

Popular IDEs include Visual Studio, Netbeans, and IntelliJ.

**Databases**
=============

Most programs have to save data. And a lot of data are saved in databases. We have to learn databases to save data and then update them.

SQL is the most popular query language for creating, updating, reading, and deleting data.

Therefore, we should learn them fast. To make our job easier, we should learn about SQL queries, including nested queries, grouping, etc.

Popular database management systems include MySQL, PostgreSQL, etc.

NoSQL database is also used in some situations like caching. They may save data as JSON or key-value pairs. Popular ones in this category include MongoDB and Redis.

**Operating System**
====================

Whether we’re working with operating systems in a job or not, we’ve to know some basic things about operating systems like CPU usage, memory allocation, threading, etc.

We also have to learn how to write programs that are efficient on resources so that users won’t be frustrated with our programs.

Also, we’ve to learn about operating system shortcuts for our favorite operating system like Windows, Mac OS, Linux, etc. so that we can work faster.

Conclusion
==========

These are some basic technical skills to learn. It’ll take lots of time to practice and learn them.

If we want to be successful, we’ve to learn them all and practice everything.