Skip to content

Latest commit

 

History

History
68 lines (49 loc) · 4.23 KB

File metadata and controls

68 lines (49 loc) · 4.23 KB

Seven Pieces of Advice

Source: https://blog.pragmaticengineer.com/advice-to-myself-when-starting-as-a-software-developer/

Here are seven pieces of advice the author wishes they would have started doing sooner. Habits that could have helped them grow faster and in a more focused way.

  1. Take the time to read two books per year on software engineering
  2. Learn the language you use at work in-depth, to the very bottom
  3. Pair with other developers more often
  4. Write unit tests and run them against a CI
  5. Make refactoring a habit and master refactoring tools
  6. Know that good software engineering is experience. Get lots of it.
  7. Teach what you learn

Each of these is expanded on in more detail below.

Take the time to read two books per year on software engineering

  • Pick two software**-**related books a year to read and process carefully
  • This includes taking notes, talking chapters through with others, doodle diagrams, trying out, going back, and re-reading. Read rather slowly. Do a chapter or two in one sitting. Take notes or highlight.
  • Look for books that go deeper than what you know now. This could be a book on a specific technology, or on software engineering practices.
  • Don't go overboard: one book every six months is already great. Pick a book, and spend the time to properly read it
  • Here's the list of books the author has read and is reading

Learn the language you use at work in-depth, to the very bottom

  • Whichever your primary stack is at work, go deep into it and learn the internals
  • Learn about threading, how garbage collection, performance bottlenecks, and other internals
  • This knowledge becomes an advantage both at work, and when interviewing for other jobs
  • The more languages you know, the more you can evaluate their strengths and weaknesses. And the more languages you know, the easier it is to pick up new ones - and go deep easier when you need to do so.

Pair with other developers more often

  • Pairing with another developer can provide learning leaps that greatly accelerate your development
  • Pair to understand how other developer's think and learn from one another
  • Pair in order to write better and more maintainable code

Write unit tests and run them against a CI

  • Unit testing is essential but in order to understand why you have to experience it saving you
  • You need to grunt away, and write those tests, have them run against a CI (continuous integration)
  • If you are just getting started, you can use Travis CI for free
  • Good test coverage on your code can really save a project as the team grows and evolves
  • The tests protect new developers from breaking things and pushing bugs to production
  • Tests allow you to make huge refactors and re-designs without fear

Make refactoring a habit and master refactoring tools

  • Learn how to comfortably do both small and large refactors
  • Learn your IDE really well and how to use the editor to make refactors easier
  • Extracting a method, renaming a variable, moving into a constant
  • Make small refactoring a weekly habit

Know that good software engineering is experience. Get lots of it.

  • The best software engineers have a mix of learned knowledge and real-world experience. The knowledge you can learn. The experience, you need to go after.
  • Look for opportunities to work on different stacks, different domains, and challenging projects.
  • Volunteer to work on new projects and try out new technologies as the first in the team
  • When you push yourself and work with engineers your senior, you accelerate quickly

Teach what you learn

  • The best way to learn something is to teach it.
  • Write blog posts or create presentations for others in the company or communities
  • If you want to learn something well, sign up to do a public talk about that thing
  • The nice thing about teaching others is you can only win. Not only will you learn something by teaching, but you'll also help and inspire others.
  • Become a teacher and mentor for others. The earlier you start giving back and teaching, the more natural this will come.