Although the fundamental principles of software development have remained the same for decades, technology is always changing with new ideas, libraries, and tools arising every day. In a constantly evolving environment, it’s that much more important to keep up-to-date.
Companies search for professionals who are always looking to do just this by improving their skills and continuously learning. Keeping your knowledge and skills fresh will help you to make wiser decisions, seek creative and innovative solutions, and become more attractive to prospective employers.
However, it’s easier said than done. The software development field is extensive and knowing everything is, unfortunately, impossible. This article intends to help you narrow your focus on your learning journey and provide you with a list of valuable online learning resources and tips to point you in the right direction.
Where to Start
Assessing Your Skill Level
An essential first step on your learning journey is to understand where you are professionally and how to define your career goals. For instance, experienced developers looking to switch stacks will follow a different path from mid-level developers looking to increase their seniority. To assess your skill level, you can:
- Consider difficulties and tasks that are most challenging for you
- Review feedback from job interviews
- Ask for advice from more experienced colleagues on where you can improve
- Take tests that suggest your level (e.g. Plural Sight Skill IQ).
While doing this exercise, don’t forget to consider soft skills like time management, leadership, communication, and teamwork. They are as relevant as hard skills and should be worked on as well.
Setting Career Goals
When it comes to setting goals, it’s important to consider if they align with your career’s trajectory. Expanding the breadth of your technical knowledge by constantly changing stacks may be a good goal for a software architect. The same isn’t the case for a developer, though. Although there are benefits of becoming experienced in areas adjacent to your own expertise, developers need to first dig deeper into the stacks they work with. Knowing how to use and apply tools, libraries or frameworks is not enough to reach greater heights, either. It’s essential to focus on how things work, as well as their pros, cons, and alternatives.
Once you have a good indication of where you are in your career and where you want to go, you’ll have an easier time choosing a learning path that’s the right fit for you.
Choosing a Learning Platform
There are many online learning platforms out there today, so it’s understandable if you’re unsure where to begin. Here are some questions to help you evaluate your options:
- What is my preferred learning approach?
- Is the platform reputable?
- How much does it cost?
- Do they offer certificates?
Preferred Learning Approaches
Learning is a unique and individual process and everyone has their own preference for how they learn. However, according to this study, there’s no evidence to suggest that following a single preferred approach positively affects a person’s ability to learn new information. The best way to learn involves varying the types of materials and stimuli to see what works. Consider a subject you want to learn, test out different approaches and recognize which ones are most effective. It may help you along the way.
In general, you can classify software development learning platforms according to different criteria. For the sake of clarity, we’ll consider the following:
- Text vs Video: Online platforms usually present their content in two ways: video and text. While, on average, a person’s reading speed is greater than the words per minute in a video, it’s worth figuring out which channel works best for you.
- Theoretical vs Applied: How the content and courses are structured will vary depending on the material and the platform as well. Some may fall under the traditional lecture-style format and focus on covering theories and concepts, while others may follow a more practical approach that involves active participation and practice like developing a system from scratch.
- Interaction with instructors and peers: As for interaction with other learners and instructors, some platforms have forums and peer-reviews, while others offer direct interaction with instructors and detailed feedback.
The reputation of a platform or course is another good reference to evaluate, especially when they aren’t free or when there are different options for the same content. When in doubt…
- Search the web for popular opinions about the platform and the course
- Look for the instructors’ curriculum and check if they have experience in the area, or if they have published other well-reviewed courses
- Chat with colleagues or use social media to ask your network
- If the platform allows users to rate content, referring to it can be helpful
The cost of courses can vary greatly from platform to platform and may involve a cost per course and/or a full-access subscription. Some platforms that offer feedback from instructors tend to have higher price tags.
If you don’t want to stick to free courses then set aside a monthly budget for investing in training to help you choose courses that fit your budget.
Certificates are a way to show future employers that you are keeping up-to-date. They also may help you become more distinguishable in the market. Depending on the platform, these certificates can sometimes be used as university credits.
The following table lists several online learning platforms that are worth checking out. Each is classified by content channel, material, cost, main skills, the main form of interaction, theory versus application, and certification.
|PLATFORM||CONTENT TYPE & MATERIAL||COST||SKILL||Main Form of Interaction||Theory-Application balance||CERTIFICATE|
|Alura||Video, content presentation||$75/month||Varied||Forum||More practical||Yes|
|AWS Academy||Video, content presentation and exercises||Free and paid (varies per course)||AWS||Forum||Balanced||Yes|
|Codecademy||Text, guided hands-on||Free and paid options ($15/month)||Varied||Forum||More practical||Yes|
|CodeCourse||Video, content presentation||Free and paid options ($12/month)||PHP, JS, and Flutter||Forum||More practical||No|
|Coursera||Video, content presentation and exercises/side projects||Free and paid options ($59/month)||Varied||Forum and peer review||Balanced||Yes|
|Educative.io||Text, explanation and exercises||Free and paid options. ($16/month) Discounts apply for different countries||Varied||Forum||More practical||Yes|
|Edx||Video, content presentation||Free and paid (varies per course)||Varied||Forum||Balanced||Yes|
|Frontend Masters||Video, content presentation||Monthly subscription $39/month||Front-end||Platform support||More practical||No|
|Laracasts||Video, content presentation||Free and monthly subscription options ($15/month)||PHP and JS||Forum||More practical||No|
|LinkedIn Learning||Video, content presentation||Paid and monthly subscription options||Varied||Forum||More practical||Yes|
|O’Reilly Learning Platform||Text and video, books, interactive learning||Monthly subscription $49/month||Varied||Forum||Balanced||No|
|Oracle Academy||Video, content presentation||Free and paid options||Oracle||Forum||Balanced||Yes|
|PluralSight||Video, content presentation and hands-on||Monthly subscription $29/month||Varied||Forum||More practical||Yes|
|Skillsoft||Video, content presentation||Monthly subscription $29/month||Varied||Forum||Balanced||Yes|
|TeamTreeHouse||Video, content presentation and projects||Monthly subscription $29/month||Varied||Peer review and chat||More practical||Yes|
|Udacity||Video, content presentation and exercises/projects||Free and paid (varies per course)||Varied||Forum and detailed feedback from instructor||Balanced||No|
|Udemy||Video, content presentation||Free and paid (varies per course)||Varied||Questions to the instructor||Varied, but more practical||Some courses|
Let’s break this table down a little…
Courses/Platforms for Theoretical Learning:
Some of these platforms like Coursera, edX, and Udacity cover more theoretical content than others. They are strongly linked to academia and offer courses both in partnership with universities as well as large companies like Microsoft, Amazon, Google, and IBM. Coursera and edX both have individual courses, course sequences (specializations/xSeries), (micro) bachelors, (micro) masters, and professional certification courses.
Udacity, on the other hand, has individual courses as well as special courses known as nanodegrees. The main differences between these platforms are related to the cost and degree of feedback and support they offer.
Tutorial-Style Applied Courses/Platforms:
PluralSight, Frontend Masters, CodeCourse, Laracasts, TeamTreeHouse, Alura, and Thinkster are platforms that have a tutorial-style approach. These platforms deliver content by video and students are given instructions to replicate what they learned (some also have hands-on activities in the platform itself like PluralSight).
Text Only Courses/Platforms:
Some platforms like Codecademy and Educative.io offer text-based courses. Codecademy follows a guided course approach, in which brief textual content and instructions are presented and for each learned topic. Learners must replicate what they have learned in an interactive terminal/IDE in order to continue (similar to O’Reilly’s interactive content). Educative.io, in turn, brings courses with longer textual content, usually with questions that validate learning and space where you can practice what is being studied.
Courses with In-Depth Instructor Feedback:
If you prefer a more personalized experience, Udacity’s nanodegrees may be a good option. They’re more expensive than traditional courses but offer individual instructor feedback, with tips on how and where to improve. Coursera/edX (micro) bachelor’s or (micro) master’s programs, also offer a differentiated degree of feedback for students and are more expensive. In other courses/platforms, the forum is the main interaction channel. Feedback, when available, happens in the form of peer review and automatically graded assignments.
Courses/Platforms Linked to Book Publishers:
O’Reilly Learning Platform and Skillsoft are places where you will find many classic books in the field published by O’Reilly, John Wiley & Sons, APress, and partner publishers. They also offer recorded courses with experts and guided interactive courses, in which you can practice on activities as you learn. Despite that, the courses on these platforms also cover applied content and involve the development of interesting practical projects.
Courses/Platforms Covering Proprietary Technologies:
You can find platforms linked to large companies that share content specific to their technologies like AWS and Oracle Academy. Content is usually in video format and the degree of support varies depending on the plan you choose.
Courses/Platforms with Content from Community:
Finally, there are platforms like Udemy on which the community itself publishes its content. As you can imagine, the quality can vary on platforms with this structure. For this reason, reading feedback from previous students, as well as evaluating the instructor’s profile, are important before investing time and/or money the courses.
In general, you can ask questions on these platforms through the forums. Some platforms offer support via Slack or a chat, and many also offer extra content in articles and cheat sheets.
Save your money
There are ways to save money when signing up for some learning platforms. For instance, the O’Reilly Learning Platform charges $49 USD per month, but you can apply to an ACM (Association for Computing Machinery) membership ( $99 USD per year) and receive access to almost all of the O’Reilly platform. You’ll also gain access to the Skillsoft Learning Collections.
If you’re a student or are somehow affiliated with a university, you probably have access to free Coursera courses. You can also apply to the GitHub Student’s Pack that gives you six months of free access to FrontendMasters and some courses in Educative.io.
Finally, some public US-based libraries give free access to the LinkedIn Learning Platform, such as the LA public library.
Other Tips for Upgrading Your Skill Set
In addition to platforms, here are some other ways to reach that next level in your development career.
- Read books, tutorials, blogs, and listen to podcasts. This is a great way to keep up-to-date and deepen your knowledge. For this, platforms like O’Reilly can help, as they include many classic books in their plans. Also, try to follow blogs from leading developers in your areas of focus, such as Martin Fowler, Robert Martin, and others.
- Talk to someone more experienced. One of the most direct ways to learn is by talking to more experienced peers. They may have already been through scenarios similar to the ones you are facing, and hearing their opinion can be extremely valuable.
- Code reviews & pair programming. Reviewing code and doing pair programming are very practical techniques to increase your coding repertoire. Often, we tend to use the same patterns and techniques to solve problems. . Seeing how someone else approaches a problem in a different way can help us learn to think differently and open up new possibilities and lead to better results.
- Side projects. Side projects are projects started outside of normal work hours and have several benefits for learning; they often have no fixed deadlines, reduced pressure, and they can (and should) be fun. Some of the most popular products we know started as side projects, including Slack, Twitter, and Gmail.
- Contribute to open-source projects. You can also contribute to open-source projects, which can help develop some important skills like analyzing third-party code, interacting with the community, and being able to contribute new features and bug fixes.
- Perform programming challenges. Taking programming challenges is also a fun way to deepen your knowledge, especially on algorithms, data structures, and problem-solving techniques. Platforms like TopCoder, Coderbyte, CodeChef and URIOnlineJudge have several interesting problems that can be solved using different programming languages.
- Participate in events, tech talks and bootcamps. Finally, actively participating in developer communities is a great way to grow and connect with your peers. Follow events, tech talks and bootcamps are also relevant.
It’s worth investing your time and energy in order to keep your competitive edge and deliver products that meet evolving industry demands. Given the high speed of change and volume of new information in the field, some precautions can help you follow a successful path.
Some key takeaways are:
- Be aware of your preferred learning approaches
- Define and follow a learning plan
- Use appropriate resources
- Balance the level of depth and breadth of your studies
Lastly, carve out a learning path that you’re happy with and invest as much time as you can. The best way to get started is by starting and the best time to start is now. Good luck on your journey! If you have any platform suggestions or anything you would like to add, please share in the comment section.