With access to a computer and the internet, it is all it simply takes to learn to code. In fear of FOMO, I spent numerous hours constantly learning and jumping on the latest trend wagon to learn everything. If I had a time machine and could go back to learn it from scratch again. Here is how I would do it ( and without spending a dime) :
Learn to code with Intent
You need to first ask yourself: “Why have I decided to learn to code?” Before you decide this, it would help to know your intentions as to why you are learning to code (If you are just learning as a hobby, then Learn Python for free online just to start). You want to learn the right programming language for the job you are looking to get into. This saves you from falling into the pitfall of unnecessarily learning programming languages. Here is a list of roles with small descriptions and the recommended languages to learn for them.
-
-
Software Engineer
A software engineer is responsible for the design, development, and maintenance of software systems. Recommend programming languages: Python, Java, C++, C#.
-
Web Developer
A web developer is responsible for the development and maintenance of websites and web applications. Recommend programming languages: HTML, CSS, JavaScript (front-end); Python, Ruby, C#, PHP, Java (back-end); and a combination of front-end and back-end languages for a full stack.
-
Mobile App Developer
A mobile app developer is responsible for creating software for mobile devices. Recommend programming languages: Swift (iOS), Java /Kotlin (Android) or React Native.
-
Video Game Developer
A video game developer is responsible for the creation and development of video games. Recommend programming languages: C++, C#, Unity.
-
Database Administrator
A database administrator is responsible for the design, implementation, maintenance, and repair of an organization’s databases. Recommend programming languages: SQL, Python, Java.
-
IT Technician
An IT technician is responsible for maintaining an organization’s computer systems and networks. Recommend programming languages: Python, Bash, PowerShell.
-
Data Scientist
A data scientist is responsible for analysing and interpreting complex data sets and using them to inform business decisions. Recommend programming languages: Python, R, SQL.
-
Systems/Network Administrator
A systems/network administrator is responsible for the maintenance and configuration of an organisation’s computer systems and networks. Recommend programming languages: Python, Bash, PowerShell.
-
Cybersecurity Analyst
A cybersecurity analyst is responsible for protecting an organisation’s computer systems and networks from cyber-attacks. Recommend programming languages: Python, C, Java.
-
Dev Ops Engineer
DevOps engineers oversee the infrastructure and tools for software development and release. Recommend programming languages: Python, Bash, Go.
-
Pick a Language to Learn to code and get really good at it
Once you have decided on the programming language to learn, the next step is to master it. To achieve this, there are several strategies you can implement. Here is the list of approaches I would take:
- Watch online courses / Read the documentation to learn the syntax
- Learn about algorithms and data structures – this enables you to write code that is faster, more memory-efficient, and better suited for the tasks it needs to perform – If you are planning on getting into FAANG company you will be asked to demonstrate knowledge of different algorithms.
- Find packages / Frameworks – to avoid reinventing the wheel there are packages and frameworks out there for every language to help you code quicker and get your projects delivered quicker
- Building some projects – take your time and come up with projects to code and slowly challenge yourself
- Ask questions in the relevant community
- Look at other developers’ code – You can learn a lot from reading others’ code and how they are developing.
Get the right tools to make it easier to code
- Get a text editor – I would recommend VS Code or Sublime Text which are beginner friendly – In some cases, you may need to download specific text editors – Android Studio for android development. There are also paid language-specific ones such as WebStorm, AppCode, GoLand, PHPStorm
- Learn your console – The console is a command-line interface that allows you to communicate with a computer’s operating system or other software by entering commands, which are then executed and displayed to you. Learn some basic UNIX commands.
- Use project management tools – Issue tracking and breaking down tasks into Sprints is one of the most practised methodologies. The one I would most recommend is JIRA
Develop the right mindset
- Practice regularly – If you are working in a programming role now, don’t depend on your current job to teach you everything you need to know, you will need to go out of your way to progress as a developer
- Learn to write clean code – constantly strive to improve your code and to write clean code – follow DRY (Don’t Repeat Yourself) principles.
- Follow the people within the community – there are some really good developers out there who share their tips and tricks follow them on Twitter or GitHub
- Remember that there is a solution to every problem and it is out there, you just need to find it.
- Ask for help when you need it, this can save you time and frustration by allowing you to learn from the experiences and knowledge of others.
Become a problem solver
No matter how experienced you are as a developer, as you progress in your career, you will always come to a hurdle where you will see an issue you have not seen before. Often you may be working on solving certain tasks and will get stuck. You need to remember that there are infinite resources available online for you to find a resolution to your issue and there is a solution to your problem. Here are the steps you should take in these situations :
- Google Search / Youtube the problem – Search is your friend – Google will most likely direct you to StackOverflow or a related community website with the answer
- Make sure your code is not using deprecated/outdated functions
- Read the official documentation – Often glossed over
- Ask a colleague – Don’t be afraid to ask
- Reach out to the community with your problem
- Take a break and come back to it later
Learn Git
Git is a version control system that allows you to track and manage changes to your codebase. It is important for you to learn Git because it allows you with others on projects, revert back to previous versions of their code in case of an error, and experiment with new features without affecting the main codebase. Once you learn the basic git commands, create a free GitHub profile and push your code on there – it acts as a portfolio for you.
Final Thoughts
This is my comprehensive list of how I would learn to code if were to start all over again. Being a web developer and fixing problems through code is what doesn’t make this feel like a job and makes this enjoyable. I wish you all the best in your journey.