Live data from Hacker News

Ask HN: How can I prepare for my new job as a software developer?

news.ycombinator.com

21–30 of 45 posts

Re: Ask HN: How can I prepare for my new job as a software developer?

#21
Learning their software stack is good, but also learn the tools and best practices that they are implementing. When I started my first job while I was still in school, I had learned little to nothing about unit testing, version control systems, continuous integration, and agile process, which were all in use at this place. It made my integration with the team that much harder because I didn't completely speak their language.

Re: Ask HN: How can I prepare for my new job as a software developer?

#22
Another vote for "learn the stack".

Also, if you have the contact info of any developer/lead you'll be working with, reach out to them and ask what you can get a jump start familiarizing yourself with. I've had interns do this and it definitely made a noticeable difference. I mostly told them to get familiar with the stack and gave them quality free resources (while stressing it was voluntary). They didn't come in an expert or anything, but it did seem to help their heads from spinning too much during the first day/week.

Re: Ask HN: How can I prepare for my new job as a software developer?

#23
I have had three "bigboy" software jobs in my career and the same thing has always served me well:

It is always the expectation of those charged with the task of training or managing you that early-on you will start slow and be an impediment to the company. If you can figure out a way to violate that expectation, e.g. produce something meaningful in your first 1-2 weeks, you will have made a good impression that will last for a while. Build on that impression.

Re: Ask HN: How can I prepare for my new job as a software developer?

#24
A lot of the posts here focus on content. I would focus on process. Since you're new to the job your head WILL be spinning, so it's important for you to setup a way to work through the "newness".

Bring a notebook and a timer. Understand what your immediate report's expectations of you are and then set up a schedule for yourself to help yourself meet those expectations. I'm assuming that since it sounds like you're new/junior hire, the expectations, at least initially, will be low. Use this time to create a rhythm for yourself on a hour-to-hour, day-to-day, week-to-week basis so that you yourself can see your progress and understand what you're doing.

Nothing is more discouraging than being pumped for a job, putting in a lot of hours, but not really realizing where the time has gone (which was my experience initially) with very little positive results to show for.

Re: Ask HN: How can I prepare for my new job as a software developer?

#25
Read The Pragmatic Programmer, then Code Complete 2. These books will help you approach problems and people. Most important thing I've learned is to write code other people can read. A lot of times that person can be future you.

Learn design patterns, approaches to getting requirements, and how to read/create diagrams.

Learn how to write unit tests.

Learn source control tools and how to use them. If it's a command line, know how to do this from the command line.

Learn best practices for your language and get really good at your editor/IDE. (For instance, I use VIM with syntastic and pylint to check PEP8 compliance).

Learn to type quickly and accurately. This helps with everything.

If you've done those, enjoy your Summer! It's the last one you'll ever have :).

Some other things that would be fun:

- Set up a Docker image

- Write a REST API server in Python on a Linux OS

- Build in authentication, authorization, documentation

- Have Docker build and run your REST API server

- Set up a load balancer container to distribute load between multiple Docker containers

- Set up a shared cache like Redis or Memcache with containers

- Set up a MySQL Database

- Write unit tests for API

- Have Docker container automatically build, test, and deploy when you check in code

That will bring up a lot of questions of how you design things and how everything is tied together. Maybe you will just be working on a small part of this, but then you might know why things are done a certain way or how to do them better. That's where you can make a difference and distinguish yourself. You can bring a fresh perspective. Don't take anything for granted. Ask questions when they need to be asked. Learn how things can be improved.

Re: Ask HN: How can I prepare for my new job as a software developer?

#26
Another +1 to learning the business domain and the jargon associated. I work in the real estate software industry, and our Rails app is nothing but models of leads, agents, brokers, properties, etc. Knowing that an Agent belongs_to a Broker and a Broker has_many Agents is invaluable and obvious once I understand a bit about how a real estate brokerage works.

Re: Ask HN: How can I prepare for my new job as a software developer?

#27
post #2

Learn the stack they use, play with it, make sure you understand it. Also, find out what version control system they use and get comfortable using it - source control's vital stuff when working in a team and something that you may well have not really used so far in CS.

Thanks, sound advice! I have already some experience with most of the tools they use but I was wondering if I should focus more on doing, e.g., programming challenges on sites like Top Coder or complete tutorial after tutorial about the stack. They use git by the way and I have been using it for a while now.

eh you already got hired, I would relax. Its not like they expect you to start and already know everything. Plus, take time to be away from a computer before you are locked into one full time.

Re: Ask HN: How can I prepare for my new job as a software developer?

#28

Learning their stack is good advice. You'll impress folks if you can hit the ground running. Another area that I'd recommend is start to learn the business domain. If your company builds accounting software - start to learn some basic accounting principles. If your company builds healthcare insurance software, start to learn about the relationships between healthcare providers, insurance providers, health plans, etc.…

Thank you for the advice. The company doesn't focus on any particular domain but handles many different projects.

Then find out what your team in particular works on right now, and learn about that.

Re: Ask HN: How can I prepare for my new job as a software developer?

#30
My advice would be to work on debugging. It's where I struggled most early on in my first job, and where our current intern is weakest (despite being really good overall).

If you're working on a large system and haven't worked with one, you're going to end up lost a lot. Debugging a complex web app is very different than debugging an algorithm.

Here is a blog post that discusses the topic and links to four books on the topic. David Agans' _Debugging_ ended up helping me quite a bit.

A second point I'd make is to learn the idea of refactoring as a systematic process. Early on, I wanted to refactor everything, but didn't know how to refactor safely and methodically. Martin Fowler's refactoring book is not exciting, but it gets the message across that refactoring is not just "changing stuff to make it better" but a process.

Post reply on HN