Am I still a Junior Developer?
dev.to
dev.to
I also recently quit because I felt I wasn't being compensated enough for my efforts, in either freedom to learn/explore further, nor money.
I agree with you about deep understanding and hobby code. At some point in my education, something just 'clicked' and I could see clearly that software contains no magic, only careful thought about data and trade-offs.
Another part I would like to emphasize is reading (other peoples) code. Related is learning different languages and their paradigms. It is very hard and time consuming to come up with well designed techniques and patterns, and reading code let you explore this knowledge in a much more efficient manner.
Also, full stack is a lie.
For the most part, one should specialize for performance reasons. If the project requires it, do it all -- put the whole stack together yourself -- it's not so hard to find the nuances to architecture as it once was.
I prefer the pursuit of possibility. I like the adventure, but I'm a dreamer by default. And I really enjoy building something out from the first, smallest grain and seeing it grow and eventually bloom.
To the parent thread: I have no idea. I run into counter opinions and situations regularly. So I just turned on the live stream from the ISS. He's (Fischer I think) outside right now and he takes turns leaving the camera on the horizon and pointing it straight down to the surface. A lot of feature on the Canadarm -- unintentionally probably.
A rough breakdown would be:
* Junior: your focus and what you think about stays mostly on the piece of code you're currently working on. You should be able to answer questions about what you're doing, and explain how the code works.
* Mid-level: your focus is a bit broader. Now you're thinking more about a bigger chunk of a project, and several developers' efforts on it. This is where you should start being able to talk not just about what is being done or how, but also a bit about why. You may start being expected to pair with others of your level, or junior to you.
* Senior: again your focus is broader. Now you're thinking about entire projects/teams, and while you still do and must write code for those projects, you also spend an increased amount of time identifying things that slow or block everyone else, and putting in effort to speed up or un-block (for example, you might develop reusable libraries or solutions for common problems the team is running into, allowing everyone else to get work done faster).
I would change that up and require that a mid level have some proficiency with a second language. Preferably one with some notable differences as compared to the one they know. Like static vs dynamic or functional vs imperative.
If there is anything even close to linearity between the "levels" of software development proficiency, then "Will understand code found on the Web before even thinking about copying & pasting code." is not equidistant from senior engineer as it is to "Might copy & paste code from the web (such as Stack Overflow) without understand it, if it just works"
Being a Junior developer should be a proud accomplishment, not a title for what you can buy for $10k and sitting in a classroom for a few weeks.
Just a sec, let me glance at the date in the corner of the screen ...
The answer is a resounding "Yup!"
Ask me again in, oh, 2027.