Learn to Code Effeciently as a Self-Taught Programmer.
There could be several reasons why you started to learn coding like your love towards computer science. In the coding journey, it's very obvious to feel anxious at some steps. If you are a self-taught programmer, you may face some additional obstacles and difficulties that formal education or training can help you overcome. However, this does not mean that you cannot succeed as a self-taught coder. Many successful programmers are self-taught and have learned valuable skills and knowledge on their own.
In this blog post, I will share some tips and advice on how to learn to code effectively as a self-taught programmer. These tips are based on my own experience and research, but they may not apply to everyone or every situation. You should always experiment and find what works best for you and your goals.
1: Choose a Programming Language and Stick to It.
Choosing a programming language can be overwhelming and confusing, especially if you are not sure what you want to do with coding or what kind of projects you want to work on. You may be tempted to try out different languages and switch between them frequently, hoping to find the perfect one for you. However, this can be counterproductive and inefficient, as you will end up spending more time learning the basics of each language than mastering one of them.
My advice is to choose one programming language and stick to it until you become proficient in it. This will help you focus your learning efforts and avoid getting distracted by shiny new things. Of course, this does not mean that you should never learn another language or that you should limit yourself to one language forever. Learning multiple languages can be beneficial and fun, as it can expand your horizons and make you a more versatile programmer. However, you should only do so after you have a solid foundation in one language.
How do you choose a programming language? There is no definitive answer to this question, as different languages suit different purposes and preferences. However, some general factors that you can consider are:
Your interest and motivation: You should choose a language that you are genuinely interested in and motivated to learn. This will make the learning process more enjoyable and rewarding, and keep you going when things get tough.
Your goals and aspirations: You should choose a language that aligns with your goals and aspirations as a coder. For example, if you want to build web applications, you may want to learn JavaScript or Ruby on Rails. If you want to develop mobile apps, you may want to learn Swift or Kotlin. If you want to do data science or machine learning, you may want to learn Python or R.
Your resources and availability: You should choose a language that has plenty of resources and support available for learners. This includes books, courses, tutorials, blogs, podcasts, videos, forums, communities, mentors, etc. You should also choose a language that is compatible with your devices and platforms. For example, if you only have access to a Windows PC, you may not be able to learn Swift easily.
Your background and experience: You should choose a language that matches your level of background and experience in coding. For example, if you have no prior coding experience at all, you may want to start with a beginner-friendly language like Python or JavaScript. If you have some coding experience in another language, you may want to choose a language that is similar or complementary to it.
2: Follow a Structured Curriculum or Path.
Another challenge that self-taught programmers face is finding a structured curriculum or path to follow. Unlike formal education or training programs, self-taught programmers do not have a predefined syllabus or curriculum that tells them what to learn, when to learn it, how to learn it, and how to measure their progress. This can make the learning process more chaotic and random, as self-taught programmers may jump from one topic or resource to another without a clear direction or plan.
My advice is to follow a structured curriculum or path that guides you through the essential concepts and skills of your chosen programming language and domain. This will help you organize your learning process and ensure that you cover the important topics in a logical and sequential order. It will also help you avoid gaps or overlaps in your knowledge and skills.
How do you find a structured curriculum or path? There are several ways to do so:
Use online courses or platforms: Some many online courses or platforms offer structured curricula or paths for learning various programming languages and domains. Some examples are Codecademy, Coursera, Udemy, edX, freeCodeCamp, and Khan Academy. These courses or platforms usually provide interactive lessons, exercises, quizzes, projects, and certificates that help you learn and practice your coding skills. You can choose a course or platform that suits your budget, schedule, and learning style.
Use books or guides: Some many books or guides offer structured curricula or paths for learning various programming languages and domains. Some examples are Head First Python, Learn Java the Hard Way, The C# Player’s Guide, Eloquent JavaScript, Learn Ruby the Hard Way, and PHP & MySQL: Novice to Ninja. These books or guides usually provide clear explanations, examples, exercises, and projects that help you learn and apply your coding skills. You can choose a book or guide that suits your preference, level, and pace.
Use online resources or communities: Some many online resources or communities offer structured curricula or paths for learning various programming languages and domains. Some examples are W3Schools, MDN Web Docs, The Odin Project, CodeNewbie, and Dev. to. These resources or communities usually provide tutorials, articles, podcasts, videos, challenges, and forums that help you learn and share your coding skills. You can choose a resource or community that suits your interest, goal, and network.
3: Practice, Practice, Practice
One of the most important and effective ways to learn to code is to practice, practice, practice. Coding is a skill that requires constant practice and repetition to master. You cannot learn to code by just reading books or watching videos. You have to write code yourself, test it, debug it, improve it, and repeat the process over and over again.
My advice is to practice your coding skills as much as possible and as often as possible. This will help you reinforce your learning and improve your confidence and competence as a coder. It will also help you discover new things, solve problems, create projects, and showcase your work.
How do you practice your coding skills? There are several ways to do so:
Do exercises or challenges: One way to practice your coding skills is to do exercises or challenges that test your understanding and application of the concepts and skills you have learned. You can find exercises or challenges in the courses, books, guides, resources, or communities that you use for learning. You can also use online platforms or websites that offer coding exercises or challenges for various languages and domains. Some examples are HackerRank, Codewars, LeetCode, Project Euler, CodeChef, and Exercism. These platforms or websites usually provide feedback, hints, solutions, rankings, and badges that help you learn and improve your coding skills.
Do projects or portfolios: Another way to practice your coding skills is to do projects or portfolios that demonstrate your creativity and ability as a coder. You can find project or portfolio ideas in the courses, books, guides, resources, or communities that you use for learning. You can also use online platforms or websites that offer project or portfolio ideas for various languages and domains. Some examples are CodePen, Glitch, GitHub, Repl. it, CodeSandbox, and StackBlitz. These platforms or websites usually provide tools, templates, hosting, collaboration, and sharing features that help you create and showcase your coding projects or portfolios.
Do competitions or hackathons: Another way to practice your coding skills is to do competitions or hackathons that challenge your speed and quality as a coder? You can find competitions or hackathons in the courses, books, guides, resources, or communities that you use for learning. You can also use online platforms or websites that offer competitions or hackathons for various languages and domains. Some examples are Google Code Jam, Facebook Hacker Cup, Microsoft Imagine Cup, Hacktoberfest, Major League Hacking, and Devpost. These platforms or websites usually provide prizes, recognition, networking, and learning opportunities that help you enhance and showcase your coding skills.
Tip 4: Seek Feedback and Support
Another tip for learning to code effectively as a self-taught programmer is to seek feedback and support from others. Coding can be a lonely and frustrating activity at times, especially if you are doing it by yourself without any guidance or assistance. You may encounter errors, bugs, doubts, questions, and confusion, and it’s very common to have situations like these. What I use to do is that if I get any doubt then I first try to solve it on pen and paper then I switch to stackoverflow like places to find the solutions for my problem (coz am a self-taught programmer😁).
Conclusion:-
Never feel like you are going too slow, what matters is whether you are learning efficiently or not.
Try to make as many projects as you can(with yourself).
Practice! Practice! and Practice!
Share this blog to your friends , family or anyone who is getting problem while learning to code.
Subscribe to my newsletter
Read articles from Shivam Jha directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Shivam Jha
Shivam Jha
LFX'24 @Kyverno | Web Dev | DevOps | OpenSource | Exploring Cloud Native Technologies.