Recently I was called upon to interview for a consulting position with a client that focuses on transaction processing. They noticed Perl on my profile and decided to give me a call to talk things through. I can hear the collective sigh go out across the blogging universe. Perl!?
“I’ll be honest, it’s been awhile,” I told them,”and I cannot really say it was enjoyable.” Regardless, I sucked it up and started digging in to prepare for the interview and potential consulting engagement.
The first time I came into contact with this scripting language was in the 90s. I was a C programmer at the time. Since Perl looks much like C, I thought “how tough can this be?” So, I jumped right into the deep end with little reference material and quickly got lost. What did I learn?
Lesson 1. Haste makes waste, as in wasted time. So I dug myself out, figured out the cryptic syntax, patched up a fix, and moved on. Fast forward to now: the experience is quite different. I might add, pleasant.
The greatest challenge in a consultant’s career, in my estimation, is not only keeping up with technology changes, but also remaining adept in the technologies of the past.
When solving a problem, experience shows us that few problems are truly unique. Though they may be new to us, most issues have been solved before. So the art of the solution is often the art of the search.
- Find the right phrase (as literal as possible)
- Search and find a blog, tutorial, video, etc..
The issue with this process is that it can be highly iterative. Over time your heuristics improve – you recognize that StackOverflow is a great place to start, that there is a lot of junk on YouTube, etc. This process is fantastic for solving specific errors, or for finding syntax for language constructs (say, initializing an ArrayList in Java). But for finding quality starting points in learning a framework from scratch, it can be painful.
I have found a shortcut regarding this last point. Before Google became so good at finding what you were searching for, and before Sierra books online were available through public library membership, I bought lots of books. I had so many books on programming languages, embedded systems technology, and the like, that it caused storage problems in our house. The real “problem” was that I never got rid of any of those books. I used them like we use Google today: searching for patterns, as needed, that would help me solve problems.
Lesson 2, We are very good at pattern recognition. The problem with books though, is they take time to read – you cannot index your search efficiently if you do not read the pages. A movie would be so much faster to consume!
Lesson 3, Shortcuts are good. Imagine the best instructional YouTube video that you have watched. No, strike that. Imagine the best instructor you’ve had, be it at school or work. He has made a video on a programming language that you want to learn. He has structured it in such a way that you can enter into its topic at any level from novice to expert. Now add a professional production crew that produces the video, indexes it like chapters in a book, and makes it searchable.
Whether you are a consultant, student, or a direct employee, the sooner that you learn to leverage Lesson 2, the better off your professional life will be. You will find, if you haven’t already, that the most basic difference between a novice and a person adept in a field is the ability to recognize the correct pattern and apply it. The chore then becomes a matter of building your tool box of patterns and gaining the experience in applying them. Simple, right?
I’m sorry that I don’t have a shortcut for the experience part per se, but here are you some practical sites you can use that I have found helpful. If you have any additional that you like, please feel free to post them in the comments.
- Source Code – Yes; with premium subscription
- Pros – Web and Cloud technologies, animation, video, photography, cad, mobile
- Cons – Few frameworks addressed, narrow focus on programming languages
- Source Code – Yes; plus subscription
- Pros – Web services, frameworks, technologies (AIO, IOC), depth in languages and popular tools
- Cons – Older technologies are not addressed (Perl, C)
- Source Code – Yes
- Pros – CompTIA certification courses, IT, specialized program courses (Moodle, MS Project)
- Cons – Light on frameworks, heavy on old technologies (Java 2)
Lesson 4, Enjoy learning.
— Tim Broyles, firstname.lastname@example.org