This is a weekly roundup of awesome DEV comments that you may have missed. You are welcome and encouraged to boost posts and comments yourself using the #bestofdev tag.
For me, it is going to be the VS Code Editor. It is an incredible piece of software. There are tons and tons of features baked into it but still its very simple to use.
The VS code dev team is phenomenal, they keep adding new features to it every month. Given how big and complex the application is, it is no easy feat to add major features every month.
and something that got started a while ago:
The Linux Kernel Project without a doubt! It is both a historical project and has tremendous historical importance because it got the ball rolling in the early nineties that led to innumerable innovations in open source and free software world!
GNU was just an alpha experimental prior to that. If Linus hadn't started that thing, it was pretty much impossible to have an alternative working operating system today, be it for desktops or web servers. I doubt we'd be even using the word "open source" today, were it not for Linux.
replied into What Not to Do as a Programmer - My List After 2 Years of Working In Teams with a great additional point:
Awesome list Haseeb 👏👏👏
I am guilty of some of the points that you included here especially no. 1, 2 and 3 but I'm working on that 😌
If I may add one thing, it will be:
Do not be limited by your role or job title.
Just because your title says you're a frontend engineer, backend, etc, it does not mean that you should limit your team or project involvement in that specific area only.
Participate in the team discussion when there's a new feature, an issue occured and you're all coming up with the best solution.
Trust me, you will gain a deeper knowledge on the project, it's overall architecture like how the API is structured. Because even though you don't have a lot of experience on that area, you can provide a different perspective on how to approach the problem.
What you suggested may not be the solution but your insight can help your team members look at the problem in a different way, they can build upon it to come up with a better solution.
Some time ago I was having a conversation with a friend, a physician. He was complaining that he should always keep studying because its job was extremely complex and the medical equipment, techniques and available medicaments were advancing very quickly.
I did reply:
Well.. at least your hardware doesn't change so oft. It is true that the knowledge in your branch is advancing quickly, but the human body remains the same and it is not common that you need to discard what you have learn five years ago about diseases.
That, my friend, happens continuously to us.
I have been programming for more that 30 years now (since I was 10 years old) and I have faced many times the reality of knowledge obsolescence.
I remember of using BASIC, QUICKBASIC, Turbo PASCAL, Delphi, ASP, ... and many other technologies or computer languages that are not used too much nowadays. What you are learning today would be obsolete in some years...
But if you focus on the theory, the probability of obsolescence diminish.
I know that the industry is trying to diminish the university, by mean of online learning and certifications. But if you want such knowledge that never expires, you might need also to go to university or at least buy some classical theory books (Database theory, programming paradigms, Operating Systems, etc..).
One good source is MIT's Opencourseware.
But .. hey.. You might not need that. It depends on which are your expectations, and what is your plan of life.
If you want programming skills to apply in a problem domain then it is just a matter of look information about that.
We need all to realize that there is no such concept like a universal programmer that knows all the industry branches in detail. At most we might have a general overview of everything, and now what is every topic is about, but not to take full domain of everything.
It is already very difficult to be a full-stack programmer, almost impossible to deeply know all the stacks.
If you achieve to learn everything about informatics and computer sciences, then you would realize you became old, probably applied nothing, and lost the time of enjoying the life.
So don't put your expectations to high, try to learn by doing what you need and from time to time read something about the theory. You will soon find that what make programmers more valuable is not so much they knowledge about informatics, it is more about the knowledge they acquire over the problem domains (the branch for what the software is going to be used to...)
Also take a time to read what is one of these programming paradigms about. Not deeply, just to read the descriptions.
Try to read the tech news and, if some concept is new for you, just try to read the basic definitions.
Good luck, relax and enjoy learning !
See you next week for more great comments ✌