User deleted post
Best path to reach an advanced level as a software developer
Yes, this broke so many rules. Feels like we need another couple of mods in different time zones
You’re not wrong. With that said, I wouldn’t blame the mods. Post get taken down all the time. Did you report this post?
Yes, I report every post that warrants it.
I cannot check easily at the moment, but perhaps you'll be able to confirm this is still the case by looking in the sidebar:
As of several months ago, there was only one moderator. He has refused any offers of assistance while complaining that he does not have the time to moderate the report inbox each day.
Rewind to 2 years ago and this sub was very actively moderated. Since then, something has changed and posts stay up for days. That's the entire effective lifetime of active discussion on a post.
It is just a bit disheartening to see the sub going downhill so rapidly. At this rate, it will not be long before the "how bad is the job market?" posts that plague /r/cscq begin to dominate this subreddit as well. Perhaps we'll get lucky and the job market will improve before that occurs! ;)
No idea. I usually skim the post and move on. I don’t get involved in the internet drama.
Wise. That's all we can do. I hope the discussions of yore can return one day.
It’s just what happens when communities grow. I’ve probably been active in this sub since 2015-2016 time frame as people moved from cscq to here.
Don't just focus on programming. Look at database design, app hosting and deployment. Think about the whole picture of how you would deliver whatever it is you've written to a hypothetical customer.
How do you expect to succeed when you can't even read the sub rules. Most important thing in programming is paying attention to detail and the second most is learning how to search.
User deleted comment
2mo
I mean I get it, but this isn't the place my guy!
You definitely read the sub rules and still broke them? Did you notice the pinned message that was specifically made to prevent posts like yours?
It's a dev's job to find "valuable answers". Instead, you pester other devs. Literally every tech sub on Reddit is overrun with imposters that beg for "answers" every day. We grew up with RTFM and you grew up with "what's the answer"? That's why you can't advance.
Self-taught webdevs are always in a hurry. Do you realize it's going to take many years of studying? It takes a year of full-time studying just to learn up to leetcode medium, another two for leetcode hard, and many more to learn whatever you specialize in.
You say you want to study CS. I heard there's this place that's been teaching CS for 70 years. If you google it, you might even find a whole curriculum online, complete with books and even video lectures.
Learning from experienced developers working on hard problems is the best way IMO. Consider getting involved in an open source project where you'll interact with experienced developers reviewing your code, you reviewing their code, etc.
ask yourself what does “advanced” looks to you? do you imagine writing up code for 80 hours a week? that’s not going to happen as you advance in your career. there’s a lot more to this than code.
think about soft skills and listening. you’d be surprised how far ahead that puts you over a lot of devs
i don’t believe there’s an “advanced” level as we’re always learning (that’s just me being philosophical and annoying heh)
What's your dev ops look like at your current job? I imagine that if you're in a company of inexperienced developers, learning dev ops strategies might be the best investment for you and your company.
The more you know the more you can impress your peers with I. So keep studying. I still read books after ten years.
Follow your genuine interests. Try to get put onto projects that deepen and expand them. Find little opportunities to apply them in ways that are useful to you or your coworkers. Try to get positions defined by them. Move to companies whose value propositions align with them.
My career took a 100% different and better path when I lucked onto a project that scratched an itch that I haven’t stopped scratching, 6 years, 2 promotions and 2 companies later.
You will do your best work at what you like doing.
Your current actions indicate you have all the signs of success! Just keep learning, try things for the fun of it.
Flask and Django are good tools, I've used Django for many years and I'd always choose it over Flask but that's personal choice based on commercial experience.
As for 'advanced'; I am not sure what that means these days, not any more. People seem so quick to want to scale the career ladder without really spending the hours in the trenches learning the skills properly. I wouldn't say that 'things' have to become second nature, but when you get to the point where you hear the outline of a problem and you already 'know' it means using database X, a queue, and a message broker etc then you are on the way!
It takes time to learn and acquire the knowledge. Reading books is good, and if the book challenges you to do an exercise... do it! I am terrible for skipping exercises sometimes but that's where you learan things.
User deleted comment
2mo
Well, take it like any other advice....... :D
IMO the best way to become good at programming is by doing it. Reading books will only get you so far, you really need to get real world experience of building things that actually work and then maintaining them. That's how you really learn to design and write good, maintainable software. You can read about good practices and that's all great, but there's no substitute for making a few mistakes, learning from them and knowing *why* they are good practices.
A startup should actually be a good place to do that, you usually get the opportunity to get involved with a lot of different things in that environment and you get to fail fast, learn and try again.
Focus on the problem you are solving, rather than the tools.
Here's one:
I want to have a website with a canvas. On the canvas, there's a shape. When one web browser drags the shape, it also moves on all the other browsers. Can you do that?
Another:
I have a service on AWS, across different zones. I want to write a Terraform script that spins up these servers to talk to each other. You have to set up the networking so that the connections between the data centres are provisioned, ie so that the servers are not talking to each other over the internet. I want to be able to access any server from a Tailscale connection, ie an external machine can access any of the servers via a jump server.
Another:
I want to find out where the calculation bottlenecks are in my software, eg I have a system that needs to do some calculation within a few milliseconds. How do I start instrumenting where the issues might be?
And it just keeps going. Doing any of these things I mentioned will require you to use a huge number of different tools, for coding, for debugging, for performance testing.
In short, have a goal in mind, you will learn the tools.
There’a a book called the Manager’s Path by Camille Fournier that every developer should read. It does not matter if you are not in management nor want to be there. The book outlines exactly how working relationships on software teams should be conducted, between developer and team members, between developer and management, between developer and company.
The idea is to shift perspective from your daily tasks to a more full understanding of your role in the industry. Your company defines your role only one way, remember that. You need to understand what it means to be a consistent software professional across different companies and industries. Also, for bonus, you learn the optimal way teams should be run and also behaviors that may or may not be toxic.
It’s a great read. It’s an audiobook on spotify. The reader is a bit robotic, but it’s concise.
Writing code that is testable is a skill many developers don't have. Learn and practice TDD is my suggestion.
Learn the terminology and how things work. And use that terminology.
Focus on becoming T-shaped.
People problem are the hard part, tech is easy.
Any solution to a problem has disadvantages. Learn to be cognizant of them. If something seems like a perfect solution, look harder.
Explain in writing or talking things to others, it helps make the knowledge become part of you faster.
Do people consider concurrency or real time applications advanced?
User deleted comment
2mo
Yes now that literally everything is connected to the web, development on that medium is now dead.
Haha
What career path would you recommend?
User deleted comment
2mo
User deleted comment
2mo
(Meta - sorry OP)
Where is the mod? These posts that break the rules have been flooding in for months and months. This is /r/cscq with a few more experienced commenters, now.