What Should I Learn After PHP?
In this article, we would be discussing the roadmap a developer should follow after learning/working in any language for a significant amount of time.
Join the DZone community and get the full member experience.Join For Free
Table of Contents
- 1. Need for discussing this
- 2. Target Audience
- 3. The Roadmap
- Major Resources for learning
Need for Discussing This
Why on Earth we are discussing this? Because if you don't expand your skill set, you may face one of the following situations:
- You might get literally thrown out of the IT industry as time passes by.
- Even if you manage to survive, you'll be working while doing mediocre or not so challenging work and that too at a not-so-good salary.
- In today's world, the IT industry wants developers who are a jack of all trades and a master of at least 2-3.
- You would certainly not have the self-confidence if you do not have a great and wide skill set.
So, who is the target audience for this article?
- You work in the IT industry as a Software Engineer.
- You are either a front-end developer or a backend developer.
- You have, as of now, a very limited or weak skill set.
- You want to survive for a long in the IT industry.
- You do not want to live your life with mediocre work doing unchallenging work all the time, and that, too, for not so attractive compensation.
Before moving ahead with the Roadmap, one thing we should note is that the below roadmap can be modified as per the individual's situation, but the crux should be identical for all of you ,which is: "Never stop learning and keep growing your skill set."
The Big Picture:
Mandatory for All
As you can see, there are certain technologies one should be aware of irrespective of whether you are a backend or a front-end developer. These are:
- Data Structures and Algorithms: One of the most important aspects that many developers seem to ignore, but for sure are the area one should not ignore at all!
- Basic Terminal Commands: This is also an important aspect, but it can be improved alongside your other learnings. These commands are not limited to the use of vi, cat, ps.
- Version Control (GIT): You MUST be aware of the workflow of git and its basic aspects like namespace, branches, tags, merge and all.
Skills (Variable According to One's Situation):
This section contains the skills a software engineer should learn and these may obviously vary according to one's situation:
- At least one backend framework: You need to be very well versed with at least one backend framework. It may be Laravel/Symphony, Spring, etc., depending on the technology you are working in.
- At least one front-end framework: Similarly, you need to be very well versed with at least one front-end framework. It may be Angular (my personal favorite), React.js, Vue.js, or something like that.
- NoSQL databases: This is in huge demand and you have to have a hands-on NoSQL DB like MongoDB. However, you should also be absolutely comfortable with MySQL-like databases and concepts like joins.
- A caching engine: Actually, hitting the database again and again for searching similar kinds of data is a huge overhead on servers, and hence having hands-on experience with at least one caching engine like Redis or Aerospike is a great add on nowadays.
Suggested Read: Redis vs. MySQL Benchmarks
- A Search Engine: In today's world, searching for queries in databases is frequent and often adds huge overhead to servers, especially when the quantity of data is huge. To tackle that, companies are shifting to search engines like Elasticsearch which tackle these problems amazingly.
Suggested Read: Introduction to Elasticsearch and the ELK stack
- Communication skills: This is point is often neglected by techies nowadays but often proves to be a deal breaker: one should hone their communication skills gradually with time.
- Read tech blogs: Reading tech blogs like dev.to, FullStackGeek, and DZone will certainly help you gather knowledge about latest tech updates.
- The list is never ending and as your hunger for learning should be!
Major Resources for Learning
In this era, there is n number of quality resources which one can use to expand their skill sets, some of them are:
- [Udemy] Complete Guide to Elasticsearch
- Geeks For Geeks
- [Practice] Codechef
Published at DZone with permission of Ayush Jain. See the original article here.
Opinions expressed by DZone contributors are their own.