Top 7 tips to help you learn a server-side language
Pushing yourself to learn a server-side language is an admirable goal. If you have a few years of JavaScript experience, or have dabbled in PHP, then the transition may not even be that difficult. For me, the process of learning Java has been an interesting adventure, and the ongoing education continues to hold my interest as a software engineer.
Unfortunately, learning a server-side language can be a daunting endeavor for the majority of developers and designers who focus daily on the front-end. The concepts are unique and often times abstract until you can apply them to a real-world scenario. Without having that luxury, you can be at a disadvantage. Nevertheless, the following tips should help you to stay on track during your studies.
Learn how to learn
The illusion that all programmers are Mensa speed reading geeks who pick up a language in a weekend is a poorly perpetuated myth. Books are an excellent resource, but everyone learns differently. In the words of the ever wise Yoda, “You must unlearn what you have learned.” — including how you learn. I suggest you uncover your learning style so that you can feel confident that you are retaining important subject matter.
Latch onto an IDE
One of the early mistakes I made while learning Java was focusing an undo amount of energy on the language itself, and not enough energy on the development tools. At least in my world, IDEA and Eclipse are the two major competing IDEs. I have experience with both, but I naturally gravitate toward IDEA. This might not be a possibility for you. Regardless of the IDE you choose, you need to know all the ins-and-outs, especially the debugger, auto-complete functionality, keyboard shortcuts, version control integration, and refactoring tools.
Create a problem you do not know how to solve
If you are not learning a server-side language on the job, then remaining motivated can be extremely difficult. Try to freshen up your regimen. Instead of taking a linear approach, create a problem for yourself, and try to solve it using the specifics of the language. I suspect that you are suffering through this ordeal for reasons other than becoming a better person, or to impress your friends. Whatever that reason may be, use it to your advantage. Do you need a tool for reading directories, creating files, manipulating a database, or parsing XML? Start programming.
Browse the API during your lunch hour
A systems architect once suggested this to me, and with a silly grin on my face I thought he was joking. No one in their right mind would browse the Sun Javadocs. It would be like sitting down with a cup of coffee and the Merriam Webster Collegiate Dictionary in hopes of reading a thriller. I have since understood that this can be a fruitful exercise. Get to know the official documentation and how to use it. For me the Java API has been especially helpful when learning the nuances of collections. Exciting, huh?
Find an experienced mentor
If you are a full-time freelancer, then finding a mentor might be difficult, and yet, this is an important piece of the puzzle. A mentor should be able to offer up a wealth of valuable insights gleaned from both mistakes and accomplishments. The nitty-gritty syntax of languages, industry-wide best practices, and security concerns are the sort of knowledge that a mentor can impart upon you. You also need a one-on-one resource to help you overcome frustrations with a bit of encouragement. Build this relationship over time, but remember not to take advantage of a mentor’s good nature.
Keep a list of useful bookmarks
I have the bad habit of forgetting to bookmark useful URLs. I try memorize the resource destination or name, but fall short. The URLs I do bookmark are in a disorganized heap between IE and Firefox. This is poor practice, and one that continually comes back to haunt me. I am in awe of those programmers who have a neatly kept list of bookmarks, organized with detailed headings. Whenever I ask a question, if they do not have the answer, they know exactly where to get it. This is definitely an example where you should do as I say, and not as I do.
Learn the basics of MySQL
This might seem out of place, but it is the one thing that I can guarantee will help you to learn a server-side language. The worth of a language is inextricably tied to the method in which it communicates and interacts with a database. It is better to understand the basics of a structured query language (preferably MySQL) before trying to understand a concept as complicated as connection pooling. You do not need to grasp the minutia of database design, but having a solid foundation will prevent roadblocks.



A day late and a dollar short... comments are closed.
Brian, cheers for another great article!
Yes, I totally agree on your last point. Might I also ad that MySQL is simply a workhorse, a few folds faster than any server-side language. Always try to work MySQL as much as possible, it has some beautifully wicked functions which will make your scrips run so much faster!
On another note, yes, unfortunately I have “overstayed my welcome” with my PHP&MySQL mentor a few years back, I really wish I was less hasty in my approach. Really good mentors are hard to find and it’s so easy to annoy them. They are really busy people, never ask them the same question twice, always check your manuals - I know it’s so tedious - but spend at least 30′ on an issue before asking for help.
Ok, that was my 2p ; ).
Comment by:
Gerhard
Hey Gerhard,
Good points - especially spending at least 30 minutes on an issue before hitting up a mentor for help. Problem-solving is a skill best learned in combination with a bit of frustration. If we are not pushing ourselves, then we are getting off too easy. It takes a good mentor to push, without pushing away.
Comment by:
Brian