- Take additional programming courses (even just audit them) at some of the schools around Dallas. Some of the community colleges have good classes.
- Read, read, read.
- Anything by Robert Martin
- Agile Software Development, Principles, Patterns, and Practices (known as the PPP book)
- Clean Code: A Handbook of Agile Software Craftsmanship
- The Clean Coder: A Code of Conduct for Professional Programmers
- Follow him on Twitter: https://twitter.com/unclebobmartin
- Check out books on:
- The Pragmatic Bookshelf (www.pragprog.com) – by the guys who wrote Pragmatic Programmer (another good read)
- Manning (www.manning.com)
- Check out the Head First series of books at oreilly.com. And other books there as well, but the Head First books are good intro books to a lot of ideas.
A couple of good starters from them are: - Head First Object-Oriented Analysis and Design
- Head First Design Patterns
- Check out the local user group community. Most communities have very active .Net and Java User’s groups.
- Find out who the movers and shakers are in the industry and follow them on Twitter and read their blogs.
- Learn about the industry or line of business you are working in. Most organizations have books available, like ABA (www.aba.com) for the banking industry. Have you ever read ABA's "Principles of Banking"?
- Find an Open Source project that you are interested in and get involved.
- Create your own Open Source project.
- Learn git.
- Learn about dependency injection (or dependency inversion) and try it out.
- Learn what SOLID means
- Learn what GRASP means
- Learn what coupling and cohesion are and what is good and bad about them.
- Write a simple piece of software using TDD. Learn what TDD is. Try to incorporate it into your normal development process.
- Do Lunch and Learn presentations – nothing helps you learn something like having to teach it to others. We do this every Friday (except when we don’t :-)). Each team member takes turns presenting something new to the team and then we discuss it. This also helps develop good presentation skills. We critique the presentations as well to help junior members (and even the senior members) of the team learn.
- Go to at least one good technical conference a year. Several of us started attending the Strangeloop conference in St. Louis about 3 years ago. I wouldn’t miss it. Lots of good ideas, the current buzz in what is going on in software development. I have learned two new languages inspired by sessions at Strangeloop. It is also relatively inexpensive for a conference.
- Learn at least one new language every year. You may learn something you will never actually use in a real system, but exposure to the ideas and thoughts behind different languages help expand your own thinking and problem solving skills. And you never know. I learned Groovy last year and we are using it where appropriate today at my current job. I also learned Erlang which I will probably never use to develop a customer system, but it taught me a lot about thinking in functional programming languages. For the .Net guys, I would definitely look at F#.
- Learn a new database every year; learn a new tool each year; learn a new web design approach each year; you get the idea.
- Learn another operating system beside Windows. Port some code from one to another. Look at Raspberry PI.
- For web development, check out todomvc.com. It shows how to write a simple to do list in a number of different web frameworks, so it gives a basic intro to web programming and lets you compare approaches.
- Check out the Tutorials section on topcoder.com. Pick a hard problem, design a solution, algorithm, and code it. (This is actually one of the things Google will tell you to do before an interview with them.)
Wednesday, January 11, 2017
Software Engineer's Personal Development Ideas
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment