Just starting out, what should I learn?
What should I learn (first)?
One of the most sought-after information by up-and-coming software developers is, in my opinion, “What should I learn?”. And this is, without a doubt, a fair question that I completely empathize with. These days there is no time to waste, especially at the beginning, on how the underlying technology works, how the library components interact with each other and knowing virtually everything about a technology stack before learning it. I believe the best way to learn something is by doing it.
“OK, but do what?”
You can’t just pick a framework and go with it. What if it’s not supported anymore? What if businesses aren’t using it anymore, therefore there could be no market demand for it. You want to stay relevant but also be able to diagnose or work with legacy projects too, you want to become not only reliable, but indispensable. On the flip side, what if the technology at hand is too new? Yes, that’s possible, this means resources are harder to find, but more relevant/up to date. Libraries are still being developed and are in their inceptual state. “What does this framework have that the other doesn’t?” or “Why should I even care about alternatives, I want the best!” Well, sorry to spoil it for you, but the best simply doesn’t exist. But don’t despair, there’s still hope (quite a lot).
Following, I will show you how I tackle this entire process, in just 4 easy steps. Don’t worry, this will be with a beginner mindset, as continuous learning means always being a begin a beginner in one or more aspects. I will not only give you the answer best suited for the current market demands (in the UK at the time of writing this, July 2021), but also show how I’ve done it along the way. Each step will consist of relevant examples that will help visualize the entire journey as made for you.
At the end, I’ve got a very special gift for you, a cheat sheet that summarizes everything up. It will show you how to find the most relevant technologies, regardless of your preference. This will be especially handy for those of you who wish to become web developers or experienced developers who would like to venture into a new tech stack.
Step 1: Purpose – Begin With The End in Mind
As Dr Stephen Covey stated in his book The Seven Habits of Highly Effective People, “Begin with the end in mind”. This comes especially handy when dealing with new areas of expertise. As I’m sure many of us developers, have to deal with from time to time. So, what does this mean? In a nutshell, ask yourself: Why am I trying to learn this? What is the need in my life that I am trying to fulfill through starting on this path? Is it that you want to build a business? Or that you want to start freelancing? Most commonly, is it the job market that makes you think of re-orienting?
To make this step more substantial, I’ll provide an example to help your journey. This is the scenario, a WinForms developer wishes to venture into the web development world, due to constant increase in market demand in this area. And so, what is the purpose? Getting a job! Other examples can be, starting a business, or freelancing, in which case, the purpose speaks for itself.
What if you don’t know why you want this? Usually this could be just a phase. But don’t let this discourage you. Maybe someone influenced you and you simply don’t remember why your desire begun. Sleep on it for a while, and see if you still want it. Remember, there must be a specific purpose, otherwise a wishy-washy goal will get you nowhere. Motivation alone doesn’t last long.
In this way, ask yourself, what is the reason I want to do this? Take a sheet of paper or open up a word doc and type this down, in simple terms like shown above.
Step 2: Research – Expand Your Breadth of Knowledge
I have a purpose, now what? At this point you (should) have a purpose written down. Remember, don’t just hold it in memory, put it down on the paper. Go on Google/YouTube and search for the latest web development technologies (or programming languages and frameworks) in 2021 (or replace with the year you’ll use this in). This article from digital.com shows a bunch of relevant tech stack that should serve you as a starting point. Or take this video from Academind, who talks about some relevant trends as of Jan 2021.
With regard to web development, the following technologies require researching as a starting point:
- Client-side
- Server-side
- Database
After a quick research I came up with the following:
- Client-side technologies:
- Angular (framework) running on TypeScript (which is a superset of JavaScript)
- React (framework) running on the same language as Angular.
- Blazor WebAssembly (framework) running on C#
- Server-side technologies:
- .NET (framework) running on C# (programming language)
- Laravel (framework) running on PHP (programming language)
- Rails running on Ruby (also known as Ruby on Rails)
- Database engines:
- Oracle
- MySQL
- Microsoft SQL Server (MSSQL)
- PostgreSQL
Needless to say, this list is far from being exhaustive. Like stated above, please conduct your own research. This list is a concise for simplicity reasons.
Step 3: Compress – Cool vs Market Demand
At this stage, the purpose comes in handy. This is where you must intersect cutting-edge tech with your purpose. To continue with our example, finding a job, you would need to research jobs in your area and match the technologies required with those identified in Step 2. Bellow there is a Venn Diagram that shows the bigger picture.
We have already got the first part (Cutting-Edge Tech), now onto the second part, Market Demands. Spend another 30 minutes maximum looking for jobs in your area. Look specifically for the technologies required. Those who are essential. Also, when you search, try to look for entry level jobs, such as: junior web developer, or junior software developer, graduate developer/engineer. Try mixing the keywords based on your geographical location until you can identify a pattern in your search. At this stage you will begin to recognize some of the technologies encountered in Step 2, that’s good!
After my research, here are my results: React, Python, C++, .NET Core, RESTFUL APIs, GraphQL, SQL Server, Docker, Blazor, Angular, React.
As a result, our Sweet Spot is now as follows: Angular or Blazor for the client-side, and .NET Framework (and subsequently C#) for managing the server-side. As for the DB, MSSQL. In UK, where I am currently established, business tends to be focused around the Microsoft stack.
You can either pick the recommended ones, or do your own research and come up with a list like above. Don’t let this slow you down. This shouldn’t take more than 30 minutes. This is just a bird’s eye overview for the following steps. This is what our Venn Diagram looks like at the moment:
Step 4: Action – What Can You Learn Today
Out of the compressed & understood technologies, what can you learn today, or even now?
To recap, here are the technologies we yielded as a result of the previous steps:
- Angular for the client-side. Prerequisites: basic knowledge of HTML, CSS, JavaScript/TypeScript.
- MSSQL (Microsoft SQL Server). Prerequisites: SQL. This is where all the data will be stored.
- .NET for managing the server-side. Prerequisites: basic C# knowledge. This will also include DB Access technologies such as EF Core. To access the data, it is recommended to use a WEB API, which is a type of project that creates an interface that exposes a number of endpoints, which can be consumed by your client-side to access the database.
At this stage I would recommend either a bunch of crash courses or online tutorials:
- Traversy Media – Angular Crash Course on YouTube for Free (2 hours), found here.
- Official Angular Getting Started Guide, found here.
- Or this comprehensive course which includes the majority of the technologies chosen. You can find it here. Don’t be scared by the price, find yourself a coupon before purchasing anything, here’s where I take my coupons from: com. It can reduce down the price from £60 to £15 or even less sometimes.
Summary
To summarize, start with the purpose, why do you wish to become a web developer in the first place? Following, do a bit of research, see what’s new. Subsequently, contrast with the market demand. Are you looking for a job? If so, what do they ask in terms of essential skills? Intersect those with the cutting-edge tech. Lastly, take action. Now is the time to put in practice your findings and do some coding.
I truly hope this read has been or will be beneficial to you. As stated in the beginning, I have put together this entire post into a 3-page PDF document for you to download completely for free. Whether you’re an experienced engineer or just planning to starting out in software development, that is perfect for any scenario. It provides a framework for how to go about starting out in any tech industry.
Later ✌