Building your web development core skills, and adapting a cross-language approach

Published by | Saturday, May 19th, 2012

Mac Keyboard image.

One question I encounter a lot is whether it’s best for a developer to dabble in a lot of new technologies like SASS, Node, and Rails, or if it’s a better route to specialize in a smaller number of technologies to the point of perfection. Sometimes it feels like the vast number of front- and back-end technologies make it impossible to keep up. This feeling can be especially daunting when you’re looking for a job and it seems like potential employers only want to hire Web Sifus who, on top of having mastered both front-end and back-end technologies, also come with design, video editing, and page layout skills. (If you know that person, or if you’ve encountered a job description like this that only wants to hire Superman—comment below.)

Like all extremes, trying to learn too much, and focusing on too little, are both wrong approaches. Plain and simple, trying to keep up with every language and library is impossible. The goal is not to be miserable trying to learn everything, but to focus on your core and then cross train on skills rather than languages.

Building your Core

For a web developer, a good foundational group of skills to start with are:
1. Setting up and managing a server
2. Building a semantic page structure
3. Mastering page styles
4. Building interaction with the front end
5. Using databases to customize a visitor’s experience

It doesn’t matter whether you’re learning PHP, Python, Ruby, or any other  language you prefer. Learning that some problems are better solved by languages on the server and some on the client is essential. In the end, it’s more important to be proficient at solving problems than slightly more fluent in a specific development language.

After building on your core, it’s essential to make sure you approach projects with a cross-language attitude that stays focused on using the languages you’re comfortable with, and also learning to use different technologies when they make the most sense—not because you feel like you “have to.”

Cross-Language Cross-Training

Cross training in web development means that no one language is an island. You almost never use PHP by itself, or try to solve every problem on a page with JavaScript. Sometimes, the best solution is figuring out how you can combine languages together, and how to decide which language is right for the task at hand.

Recently while working on a Facebook application, I noticed that although there is an SDK (Software Development Kit) for PHP and JavaScript, trying to use just one SDK is silly. It’s better to use both since every language has strengths and weaknesses. For me, web development cross training means taking advantage of that balance and using the best tool for the job.

In the latest episode of View Source, I show you how to use HTML, PHP, and jQuery to upload images to a server and display them on a page as they are loaded. This is a good example of cross training, or, using a combination of skills to accomplish a task. In the video, I use HTML to allow people to upload files, then I use PHP to read the files uploaded to a directory, and jQuery to update the page as soon as a new photo is uploaded so the image uploader can see whether the upload was successful.

Remember, balance is critical to any job. Don’t spread yourself too thin, but also don’t limit your learning so you find yourself struggling with cross-language development. Build your core, then work on your cross-training. While this exercise routine won’t bring you any closer to having six-pack abs, it will make you a better problem solver, and a stronger developer, which will bring you two steps closer to landing your dream job.

 

Interested in more?
• The full View Source weekly series on lynda.com
• All web + interactive courses on lynda.com
• All courses from Ray Villalobos on lynda.com

Suggested courses to watch next:
• Create an HTML5 Video Gallery with jQuery
PHP with MySQL Essential Training
Dreamweaver CS5 with PHP and MySQL

Share this:Share on Facebook66Tweet about this on Twitter15Share on Google+0Pin on Pinterest0Share on LinkedIn4

lynda.com - start learning today

Tags: , , ,


8 Responses to “Building your web development core skills, and adapting a cross-language approach”

  1. Tamara MacLeod says:

    I agree with your approach 100%.

    However, most of the courses on lynda.com are focused on learning a particular language and not on choosing and using languages to solve a particular business problem.

    Most of my customers will send a link to a competitor’s site and say “I would like my customers to be able to do the same thing on our site”.

    The latest link is http://www.bibendum-wine.co.uk/wine/search

    Great looking site and functionality that I know a lot of customers would like, but this kind of real world useful knowledge is not on the lynda.com site.

    I am a premium member who is thinking of cancelling or downgrading my subscription next year because the site seems to be focused on ‘beginners’ and there are not enough ‘real world problem solving courses’ for web development.

    All of your subscribers will go beyond the beginner category after a short period of time and then leave when there is nothing else left for them to learn on the site.

    It’s much less expensive to keep an existing customer than to gain a new one.

    I have asked for a course on search filtering like on the http://www.bibendum-wine.co.uk/wine/search page but nothing is available on the site.

    I hope this changes

    • Hey Tamara,

      I hear you on the content on the site. It’s something we’re striving to improve upon. Before I became an author for Lynda, I was an avid subscriber of the site and I know about your frustration. because I sometimes felt the same way.

      We try to add different kinds of courses to the library…Foundational Courses like James Allardice’s series on programming, then application or language specific courses like our Adobe Series and then project based courses on accomplishing specific tasks, which is more like what you’re referring to.

      We have a really good team of people on the content site and are working on a combination of the above mix. The series that I created View Source is designed to focus on solution based projects, but their focus is 10 minute projects, so I can’t always cover bigger projects.

      I really love the example page and your idea. I will pass this along to my boss so he can evaluate it for a possible course. I really like those type of goal focused projects…it’s one of the things I hope to do more of in the future. I know the reason why it doesn’t happen as often is because of the massive quantity of content we have to cover.

      Thanks for your input.

  2. Heidi says:

    After reading through on this already hectic Monday morning I felt myself actually breathing for the first time. I have spent the last few years thinking I had to be Jack-of-all-Trades just to stay afloat in my Freelance business. Beating myself with resources, training videos and conferences I’ve gotten to the point where I’ve started to dread what new material I had to work on that day. Learning something new every day used to thrill me and always helped to drive my creativity. Now I’ve been finding excuses to avoid it.

    Thank you so much for your words on this subject. As in physical training it is important to keep your core strengthened so you have the foundation to specialize and train where each project leads you.

    • Awesome! I know exactly what you mean. I’m a newer staff author and I just came from the corporate world where I had much of the same stress. I think we’re really at the point that specializing and going after skills we love is ok.

      I was recently able to find a job for one of the students in a class I teach at a local school. They were looking for someone to work in an .asp environment and he had no background in that language, but I recommended him anyways because I knew he was a great, responsible kid who was a fast learner and could learn quickly.

      So, they hired him first as a contractor and after a month or so, brought him in full time. He proved he was a great coder and a great person and that was more important than knowing a specific language.

  3. Robert B. Spatz says:

    Thank you for this post! I am in between jobs and trying to build a portfolio of web design and front-end development projects, while upgrading my skillset. I have designed my own self-study program, using Lynda.com courses and purchasing ebooks from O’Reilly Media to use as textbooks to accompany the courses. I frequently study job postings online, and every time I turn around there is more to learn. I’m creating all of the web sites in my portfolio with HTML5 and CSS3, using responsive design techniques. I’m trying to learn Canvas and JavaScript, and I want to begin learning about Mobile design in the near future. Now I find out I need to learn PHP and MY SQL. Sometimes I become frantic, because the job ads give the impression that they want each of us to produce the work of three people!
    Besides all of this, I have been told that I need build a brand and become a leading authority, using Social Media, which itself could be a full-time job. I have been working very hard, for many weeks, to start a blog. Using various Lynda.com courses, I downloaded and installed the BitNami WordPress stack, created a comp in Photoshop, created the static HTML5 and CSS3 version, and moved it over to the BitNami stack. Unfortunately, this is my first experience with PHP and MY SQL, so I have had to fight problem after problem trying to get everything to work properly, and I’m still having minor problems, so I still don’t have my blog up and running. I’ve had acquaintances tell me that I analyze everything too much or I have “paralysis analysis”, which is no help at all when I already know I have bills to pay! Your post shows me that I’m not the only one who runs into this problem. Thank you!

  4. Will says:

    Hi

    Thanks for allowing me to read all of the above insights and for allowing me to post my thoughts.

    I am at a cross roads myself and luckily I can spend all day/every day to work on a plan of action for my own skills development.

    IMO, I find working (front-end/design since 2003), as an employee very degrading – mainly because most of the companies/organisations I’ve worked for have not been at the cutting edge of web technology – i.e. website only, nothing ‘innovative’. I have always felt held-back and under-performing, and worse still, working with people who were happy with their admin jobs. I have nothing against that, but peer competition and skills sharing is vital is learning, whereas the cost of paperclips is not really useful knowledge. Neither is using Word a ‘skill’ – IMO! This makes me dream of working for Google, or Facebook, etc because I perceive that these companies are in fact on the cutting edge of web technologies, and they are. Of course, this is my generalisation. Allow me.

    For quite a while I’ve wanted to go setup my own business, e-commerce store, SAAS – in fact so many ideas. But the truth of it is I don’t posses all of the required knowledge need in order to be able to react and develop – I have to do the learning first. But, I believe that the best way to learn is to work on real projects rather than hypothetical/educational projects. You see, I don’t want to learn out of love for web development, I want to learn because it will give me the freedom needed to develop the next angry birds, or app, or SAAS platform whether for prototyping for deployment. Basically I do not posses these skills because I have learnt what I know within the confines of my limitations – i.e. employment, everything I know is based on what my employer requires of me. This is not good and it requires me to invest all of my time up-skill myself.

    My cross roads currently: learn web/app development on quasi-real self-set projects, or concentrate on business/e-commerce process whilst being able to use my current skills set. My ultimate goal: to become self-reliant, self-employed, responsible for generating my own income.

    So what the answer? Well, it seems to be that I should focus on becoming a self-employed e-tailer and remain in my current web design job until I’m safe to break free and continue. It seems counter productive to me that I should learn web development skills just in order to furnish my own CV and career when it fact I’d prefer to work for myself.

    • Will says:

      If I can add to this: with so many SAAS and open source projects available, its very difficult to imagine a scenario where a business would need a bespoke system, in particular for e-commerce. Why reinvent the wheel then? Moreover, if I did learn advanced PHP this would probably land me a job in a web agency (my idea of hell! Frankly…). Furthermore, there is so much competition for the top jobs learning PHP would only land me a job with a small scale company at best since the really skilled folk are out there making a name for themselves as we speak – people with PHDs in computer science, engineering, MSC is physics, mathematics, programming. Would learning Adv. PHP lead me leading a self-fulfilled life? Maybe. I’d have a salary that would buy me time to further progress and develop, but in the long-run I would always need to clock in at 9am until I retire. This outlook is my own and for myself BTW.

      Wouldn’t it be wiser to learn about business processes/e-commerce methods & technology with the ultimate goal of becoming an e-tailer? I wouldn’t be excluded from the jobs market (like cows) given that in fact the future of the web is e-commerce in all of its variations?

      I think I am using this forum to argue with myself – sorry.

      Thanks

  5. Brett Gowder says:

    This conversation seems to have died, but I’ll post anyway. Robert Spatz nailed it. The only way to conquer this predicament is to identify and focus on an area of desired expertise, such as front end development, stay on top of trends, go to Meetups, and keep pushing.

Leave a Reply