Live data from Hacker News

On Being a Junior Developer

mattsencenbaugh.com

21–30 of 73 posts

Re: On Being a Junior Developer

#21

I recommend contributing to open source projects, particularly well-known ones. It is a good way to see how other people and projects work, expand your resume experience, and network with people in other companies.

That's a good idea.Open source project is good practice for programmer,especially junior.Because you can read and modify others' high quality codes.

Re: On Being a Junior Developer

#22
post #14

My advice: don't pay too much attention to what more senior developers tell you. senior != more_talented

This will slow you down incredibly. Instead of ignoring your seniors/peers, QUESTION their "authoritative" commands. You will learn much, MUCH more that way. It also might put them in their place if they are massive egoists. Never feed the ego.

Re: On Being a Junior Developer

#23
post #14

My advice: don't pay too much attention to what more senior developers tell you. senior != more_talented

This will slow you down incredibly. Instead of ignoring your seniors/peers, QUESTION their "authoritative" commands. You will learn much, MUCH more that way. It also might put them in their place if they are massive egoists. Never feed the ego.

I would like to point out that I never suggested that one should ignore their seniors and especially not their peers. I merely suggested that seniority only buys a person so much respect. It's important not to exceed that quota.

Re: On Being a Junior Developer

#24
post #14

My advice: don't pay too much attention to what more senior developers tell you. senior != more_talented

I'm a junior developer and I've found that the old guys lack creativity, but they make up for it with experience. The people who have been programming for 20 years have seen languages/frameworks/libraries come and go, they know what good code looks like and what's just trendy. The more you ask them why they're making decisions you think are retarded the better you'll get at programming.

Re: On Being a Junior Developer

#25
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, his clients and his shame, if you make mistakes in a commercial environment, it costs someone money - get in to the habit of being your own quality assurance.

- Your wage is shitty. Well, mine is, anyway. You have to learn to deal with this, I could go in to detail about finding housing and the lack of respect you face when you need housing benefits, etc, or can't eat for a few days, but there's no need. Get used to having no money and always put as much as you can aside for that rainy day you think you are immortal from at the moment.

- Get used to being the go to guy for all the boring work, no one wants to sit there and refactor spaghetti code or build yet another custom joomla module when they have some cool CSS3 design or some technical challenge of epic proportions to work on.

- Give your boss respect, he may be friendly but he isn't one of your friends, you can joke with him but at the end of the day don't forget that this (wo)man pays your wages and evaluates your work, if you're making a lot of jokes but you have a week where your work goes wrong, the evaluation will be that you're the class clown.

- Slow down at the start, when everyone goes in to a new job, we work our asses off trying to impress then slow down once we settle in, even more so for a junior in their first role, we want to prove we belong in the industry. The kicker is that this pace is difficult to maintain and once you slow down your boss will notice your apparent lack of progress.

- Always be early, never be late. Your boss doesn't notice the fact that you come in early every day (by 15 minutes), what he does notice is the one day you're ten minutes late and unfortunately the hours aren't interchangeable. If you make a habit of being late, you are going to get fired, this isn't college where you could turn up to a lesson 15 minutes late and get a giggle from your peers for being that guy, this is the real world, where lateness isn't tolerated for very long.

- Arrogance is bad. You aren't arrogant, but you have an opinion and you come across as it, starting sentences with "actually, I think" or "No, that's wrong..." will land you in the shit, especially in front of a client. Your boss wants to appear to be an all singing, all dancing super coder and until you have a few more years under your belt, your opinion is largely invalid. However, if something is seriously wrong, drop your boss an email or a skype or a campfire (That's a thing, right?) and explain why in the least condescending way possible, if you do this tactically and only at the right times it will look very good on you.

If anyone is about to jump in to their first job as a junior or needs any advice, feel free to email me, I normally check it every couple of hours.

Re: On Being a Junior Developer

#26

I recommend contributing to open source projects, particularly well-known ones. It is a good way to see how other people and projects work, expand your resume experience, and network with people in other companies.

That's a good idea.Open source project is good practice for programmer,especially junior.Because you can read and modify others' high quality codes.

For people looking for a project, Mozilla has a lot of documentation and tools to help first-time contributors. "Contributing to the Mozilla Codebase" [1] documents how to get the code and build your own Firefox. "Bugs Ahoy" [2] is a Bugzilla search engine that filters "good first bugs" based on programming language and interests.

[1] https://developer.mozilla.org/en-US/docs/Introduction

[2] http://www.joshmatthews.net/bugsahoy/

Re: On Being a Junior Developer

#27
post #17

I would fault some of the points listed, like "Embrace Unit Testing", to a failure of Software Engineering as a discipline. Mechanical Engineering, Electrical Engineering, Physics, Doctors, etc. all have bodies of knowledge. We, as an industry and discipline, have no real body of knowledge. Do Doctors have the ability to make up procedure on the operating table? Why is it, then, that we don't have standard practices,…

No. They are part of the curriculum in a good SE degree. There is a SWEBOK. http://www.computer.org/portal/web/swebok

I found, based on my few years of experience lecturing in IT and BIS at a large university (72,000 students), was that very little emphasis was placed on building up IT as a profession based on a body of knowledge.

Really, it just isn't happening. There is a huge disconnect between best known practices, such as those you linked to, and academia.

Re: On Being a Junior Developer

#28
post #3

One other major suggestion I'd add: Practice writing. Just write whenever you can, in whatever environment, no matter how unformal. Your company wiki, your personal blog, whatever. Maturing from a "junior" engineer into a more experienced one usually means initiating suggestions, not just following them. As the OP said -- have an opinion! But your suggestions will always be limited to how well you can communicate the…

Not only is writing important for working with non-technical people, but it's a big part of interacting with your fellow engineers too. Think stuff like providing clear pull request feedback without offending the person you're reviewing. And, if you work in an office that avoids interruptions by using email/IRC, it obviously helps to be comfortable writing out your thoughts.

I'll also make the (admittedly unprovable) assertion that good code is good writing. Code and sentences can say the same things in different ways - what's the one that minimizes misinterpretation while remaining concise and interesting to read? Just as you want the key points of an essay to live within the most engaging sentences, important code should look important. Style in programming is as crucial as it is subjective, and it requires you to empathize with your readers much as you would when writing anything else.

So yeah, dust off that Tumblr account and use it for something other than reblogging.

Re: On Being a Junior Developer

#29

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". If they wanted a senior developer, they should be paying for one.

It's also important to point out that the mistakes you make now will play a big part in making you a senior developer. If you're putting yourself out of your comfort zone often enough you should be make plenty of mistakes on a weekly basis. It's nice if like you say, you catch them before your boss/clients do, but I wouldn't beat yourself up too much if you don't.

> Your wage is shitty.... or can't eat for a few days

Leave. Even with only six months of experience you're probably worth at least double what you're getting paid now. That a developer can't eat, in this market, is truly fucking ridiculous.

> Get used to being the go to guy for all the boring work, no one wants to sit there and refactor spaghetti code or build yet another custom joomla module

Refactoring spaghetti code doesn't go away when you become a senior developer, and it's a massively important skill to build up. Most non-trivial projects on big systems will require that you do this. I know it doesn't feel like you're learning anything, but reading code is a hugely important task that junior developers need to do more of (as opposed to just writing it).

The more you do this, the better you will get at understanding big systems quickly. Learn this now, do it at future clients 1, 2, 3, and 4. By the time you do it at client 5, you'll be so good at it that they'll think you're some sort of prodigy (so get paid accordingly!).

> Slow down at the start,... your boss will notice your apparent lack of progress

Who cares? If your boss has a problem with your progress he should let you know and you should work together to improve it. Also: Leave!

> Always be early, never be late. Your boss blah blah...

Personally I like coming in at the crack of dawn and leaving very early. I know other wickedly good developers who prefer turning up at 11 and leaving at 8. Non-developers don't get this, but it's fine. As long as you're delivering results and are available for any in-person rituals, no one should really care what time you arrive/leave.

> Arrogance is bad.

You say that now, wait a few years. When you've surpassed your heros in terms of skill/knowledge and spend most of your time watching other developers wrap themselves into webs of complexity for no good reason (and then have to clean up after them), then tell me not to be arrogant. A strongly worded opinion, arrogant or not, has demonstrably saved months of work and oodles of money for clients down the line.

> starting sentences with "actually, I think" or "No, that's wrong..." will land you in the shit, especially in front of a client

Bzzzt, wrong again! Expressing my opinion in front of clients, even as a junior developer, has consistently been a positive experience for everyone involved, including my boss's at the time. "No, that's wrong" is admittedly a little strong, but it really depends on the content. "No, that's wrong, the google search algorithm works like X so you'll probably have better results doing activity Y" or "No, that's wrong, if instead we make it a RESTful API we get the following 3 benefits..." is a hell of a lot more useful to everyone in the room than you just sitting in a corner being demure.

> Your boss wants to appear to be an all singing, all dancing super coder

I don't think I like your boss very much.

Based on the attitude you've displayed in this post, by any metric you're probably better than you think you are. The worst sort of junior developer is one with no humility, but I think you can afford to be a little more confident, especially when dealing with "Your boss". Also, Leave.

Re: On Being a Junior Developer

#30

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…

It bears mentioning that you obviously have a shitty boss and that you should leave at the earliest possibility.
Post reply on HN