Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What's your advice for young programmers #3

Open
gowthamgts opened this issue Jan 23, 2019 · 2 comments
Open

What's your advice for young programmers #3

gowthamgts opened this issue Jan 23, 2019 · 2 comments
Labels

Comments

@gowthamgts
Copy link

If you're 25 what's the advice you can give for your younger self for becoming a better programmer?

@mxcl
Copy link
Owner

mxcl commented Jan 23, 2019

  • Pursuing perfection rarely pays off. You get better faster if you iterate rapidly. Trying to get it right first time takes too much time, is frustrating (because you'll continuously know you can do better, but you won't know how) and doesn’t produce perfection either.
  • You won’t know how to write it properly until the third rewrite.
  • Third party dependencies are to be avoided if possible. Especially for UI components, it's better to look at the code of the thing you want and figure out how it works and do it yourself. Third party code is mostly terrible quality. You can do better. Good dependencies are invaluable though, just be meticulous in your choices.
  • The same goes for elaborate design patterns. Learn the patterns for the knowledge but then combine them with wisdom on a case per case basis. The pattern is an aid to work around the fact that humans are terrible programmers, once you realize this you can apply patterns that help for your level of ability; the patterns work for you rather than you being their slave.
  • Tight responsibility boundaries for objects/modules is key to reliable software.
  • If you don’t write tests you will regret it, but 100% coverage isn’t as valuable as you want it to be.
  • Plan how you will spend tomorrow morning. Mornings are when your brain works best, those first three hours should be distraction-free and ready to go. Some people preach 3 hour work days for programmers for this reason.
  • Communication is significantly less effective than thought. Split team responsibilities so that there are defined and documented API boundaries between people.
  • Good teams and good companies are rare, don’t quit early for the next big thing without careful consideration.

@gowthamgts
Copy link
Author

Thank you!

@mxcl mxcl added the answered label Feb 5, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants