Live data from Hacker News

On Being a Junior Developer

mattsencenbaugh.com

31–40 of 73 posts

Re: On Being a Junior Developer

#31

I'm currently a junior developer and will share the lessons of my experience 6 months in: - Making mistakes will kill you, when you sit at home working on your personal projects and a bug slips through, it's not so bad, you can fix them and the client (or yourself) is normally pretty cool with it. On the other hand, when it's someone elses fault, E.G. yourself, your boss will come down hard on you. That's his project…

I'm currently a, "something" developer this is what I would tell you over a beer after a hard days work in the salty salt mines of programming, after 6+ years on the job. > Making mistakes will kill you Nah they won't. No matter how it's worded, your current agreement with your employer is actually something like: "We agree that you will make mistakes and learn on the job. In return for this we will pay you peanuts".…

I don't agree with your comments about arrogance. You can be right and strongly opinionated without being arrogant. Junior or senior -- making anyone, boss or not, look bad anywhere, but especially in front of a client is a perfect way of finding yourself at the business end of some pretty nasty social dynamics.

Practice voicing your opinion and arguing for it in a way that isn't confrontational. 9 out of 10 times, it's as simple as acknowledging the other person: "I see where you're going with this, it's a good way to solve A, B and C. But when we get to D, I fear X will bite us in the tail - Y can avoid that.". This also avoids the stinging embarrassment of being arrogant and later being proven wrong.

Re: On Being a Junior Developer

#32

I'm currently a junior developer and will share the lessons of my experience 6 months in: - Making mistakes will kill you, when you sit at home working on your personal projects and a bug slips through, it's not so bad, you can fix them and the client (or yourself) is normally pretty cool with it. On the other hand, when it's someone elses fault, E.G. yourself, your boss will come down hard on you. That's his project…

To be fair I think all of that is good advice if you work at a certain kind of company. At my place of work I don't think any of those apply, nobody tracks your hours for example and you can work from home if you want so the never be late doesn't really work.

And this is from a reasonably sized company (~1500 full time staff)

Re: On Being a Junior Developer

#33

I'm currently a junior developer and will share the lessons of my experience 6 months in: - Making mistakes will kill you, when you sit at home working on your personal projects and a bug slips through, it's not so bad, you can fix them and the client (or yourself) is normally pretty cool with it. On the other hand, when it's someone elses fault, E.G. yourself, your boss will come down hard on you. That's his project…

I'm currently a, "something" developer this is what I would tell you over a beer after a hard days work in the salty salt mines of programming, after 6+ years on the job. > Making mistakes will kill you Nah they won't. No matter how it's worded, your current agreement with your employer is actually something like: "We agree that you will make mistakes and learn on the job. In return for this we will pay you peanuts".…

I find this fear of mistakes a bit disconcerting.

We all make mistakes, big ones, small ones, ones people notice and ones they don't. If we didn't make mistakes we wouldn't need testing.

What we do, is we learn where the mistakes are most likely to occur and we learn to mitigate the effects of those mistakes.

Re: On Being a Junior Developer

#34

Earlier quoted context omitted.

I'm currently a, "something" developer this is what I would tell you over a beer after a hard days work in the salty salt mines of programming, after 6+ years on the job. > Making mistakes will kill you Nah they won't. No matter how it's worded, your current agreement with your employer is actually something like: "We agree that you will make mistakes and learn on the job. In return for this we will pay you peanuts".…

I don't agree with your comments about arrogance. You can be right and strongly opinionated without being arrogant. Junior or senior -- making anyone , boss or not, look bad anywhere, but especially in front of a client is a perfect way of finding yourself at the business end of some pretty nasty social dynamics. Practice voicing your opinion and arguing for it in a way that isn't confrontational. 9 out of 10 times,…

> "I see where you're going with this, it's a good way to solve A, B and C. But when we get to D, I fear X will bite us in the tail - Y can avoid that."

In practice, I word things similar to what you've described here, probably even more deferent.

Still, if I believe it is in a clients best interest to do Y, I don't mind sticking my neck out and make the case more strongly for it, even if I turn out to be wrong.

Additionally, I've found over my career that I've learned the most useful skills, both technical and otherwise, from developers who were fantastically arrogant. They also happened to deliver the most value to the business, so no one cared.

Re: On Being a Junior Developer

#35

Earlier quoted context omitted.

I don't agree with your comments about arrogance. You can be right and strongly opinionated without being arrogant. Junior or senior -- making anyone , boss or not, look bad anywhere, but especially in front of a client is a perfect way of finding yourself at the business end of some pretty nasty social dynamics. Practice voicing your opinion and arguing for it in a way that isn't confrontational. 9 out of 10 times,…

> "I see where you're going with this, it's a good way to solve A, B and C. But when we get to D, I fear X will bite us in the tail - Y can avoid that." In practice, I word things similar to what you've described here, probably even more deferent. Still, if I believe it is in a clients best interest to do Y, I don't mind sticking my neck out and make the case more strongly for it, even if I turn out to be wrong. Addi…

You can be arrogant if you're brilliant - not the other way around. As a junior engineer (in the 'not much experience', not 'pay grade' sense), you're probably not brilliant enough to be arrogant.

Re: On Being a Junior Developer

#36
On tip #1, how big does the chunk of other people's code need to be to teach you about the things he's talking about? I've really enjoyed reading algorithms but struggled when looking at source code for large projects on github. I often feel lost and don't really know how to dig in.

Any suggestions?

Re: On Being a Junior Developer

#37
Something I learned early on was the importance of stepping back and looking at the bigger picture.

A good developer improves this over time, but it's far too easy to get yourself neck-deep in code and lose focus of what's important.

As a measure, if I find myself getting stuck, what I like to do is go back to the basic level and ask "what is the purpose of this?" This may involve getting more information about the feature/bug, or just talking through different scenarios. I also look at the likelihood of a scenario occurring. Sometimes, you're spending time trying to solve something that nobody knows or cares about.

Re: On Being a Junior Developer

#38
I'm also a 'Junior Developer'(around 2yr) and am currently in the phase where I have started to see the faults in the systems my seniors design. There's a module that's driving me nuts, and I'm still pondering on how to tell the senior developer(who wrote it) that it's crap, over engineered and too specific. The module works to an extent, but I can see problems up ahead if the module doesn't get fixed or an alternative is created.

I already knew most of the things described, but it's always nice to refresh your memory:)

In this stage of my career I'm thinking more and more about going somewhere where software engineers get paid what they are worth (And I'm beggining to realize I'm worth something). With "somewhere" I mean another country. Since mine is becoming increasingly unfriendly to live in.

Any suggestions/advice on how to successfully relocate to a job in another country? US or UK come to mind, since there's no language barrier for me there.

Re: On Being a Junior Developer

#39
post #38

I'm also a 'Junior Developer'(around 2yr) and am currently in the phase where I have started to see the faults in the systems my seniors design. There's a module that's driving me nuts, and I'm still pondering on how to tell the senior developer(who wrote it) that it's crap, over engineered and too specific. The module works to an extent, but I can see problems up ahead if the module doesn't get fixed or an alternati…

This all depends on where you're from. US is easier for Canadians, UK easier for Australians, for example.

For non-commonwealth/non-EU residents, the UK has gotten very difficult since 2008 for people who are unable to get an employer sponsored visa. Even to the point of doing away with both the post-study visa and the Tier 1 general.

UK salaries also can vary drastically depending on where you live (and not necessarily in tune with cost of living differences). We're also on our way out of the economic mess, so salaries are going to be depressed anyway in general as companies hire on, but use the economic mess as a reason to give lower salaries.

Re: On Being a Junior Developer

#40
post #11

I really, really wish TDD, or any concept of unit testing had been taught in my courses. Nothing has improved my ability to understand decoupling, orthogonality, and the importance of naming conventions than test writing. And on days when I can't muster the energy to write heavy code, I can at least write the tests that I know I'll need to pass...and the next day, that heavy code task is practically done. TDD is both…

They taught me unit testing at university and I've been using it ever since. It has a lot of benefits. But things like decoupling, orthogonality and naming conventions are worth thinking hard about in their own right, not just in terms of the side effects of TDD.

Contrary to popular belief, it's entirely possible to create an unmaintainable mess that breaks regularly and is impossible to extend with near-100% test coverage.

Post reply on HN