Self-taught web developers: Things to know before starting

 

People who devote themselves into Computer Programming are often called: WEB DEVELOPERS

As common as it seems, there are many successful stories which proves that web developing is a decent profession that is both challenging yet fulfilling. Some are self-taught and others are learned through hard education.

In this article I would like to focus on the self-taught web developers and the things they should know before even starting to learn the career.

1. The Basics
Nothing will ever replace the basics.  Get good at JavaScript, and then get good at JQuery, CoffeScript, and other frameworks.  Get good at PHP, and then learn how WordPress leverages it.  Get good at Rails, and then learn how the gems make things easy.

If you wish to start learning the basics, I recommend Bento.

2. Programming websites is not an intuitive skill
Programming is also a skill, but it’s not at all intuitive or tangible. Without guided learning, it’s impossible to even get started. The language tokens in code are symbols you’ve seen on your keyboard, but without guidance, a first time programmer probably won’t guess their meaning. You have to make the effort to actually learn. It will be difficult but rewarding.

3. Nobody has it all figured out.
The best web professionals continue their education constantly because there’s no end to the knowledge that can be gleaned. If you stop learning, you’ll start to feel miserable after a year or so because you’re once cutting-edge skills will now be the status quo. Worse, you’ll fall behind. The trick is to just learn a little something every day. Write a little code, read a blog post, wireframe an idea you’ve had… anything to keep your mind engaged and moving forward.

4. Learn to Code

  • Read other people’s code.
    It is important to not limit yourself on your personal understanding but rather see the work of other programmers and learn from it.
  • Do it hands-on
    If you read a book about doing something, stop reading it when it shows you something.  Immediately execute.  You’ll find that you often don’t understand things as well as you initially thought when you do this.
  • Focus
    Focus on one language and learn it thoroughly.  Then, branch out into another one.  Learning too many languages as a beginner will just confuse you. Don’t worry about what’s hot.  I spent so much time studying every “new” thing that came out I lost a lot of time that would have been better spent on the fundamentals.

5. There are always better programmers than you.  That doesn’t make you a bad programmer.
Even if you had mastered everything, keep in mind that there will always be a better programmer than you. Healthy competition is necessary to develop and level up your skills.

6. There are parts of programming you won’t like. 
Not everything you will encounter in web developing is pleasant. It is like mathematics the harder it gets, the most complicated it can be. I encourage you to not turn away from those parts, rather take time in learning it.

7. Start with an easy language and a recommended framework.
Starting with a decent language and a well-used web framework will save you a lot of time and effort. Common languages such as PHP, Ruby, Python etc. are used by a lot of people and the frameworks for these languages have been battle tested by a lot of people during a long time.

As someone who teached myself coding from scratch I can highly recommend Ruby and Ruby on Rails as a starting language/web framework combination. Ruby is a great language and Ruby on Rails will save you a lot of time when dealing with everything from databases to deployment.
Sebastian Johnsson – creator of the Ruby on Rails app Smartlend.se.

Kits that would help you save time in web development

Developing Web applications and/or websites is sort of time consuming and tedious job for every developer. In our fast and busy life we really need something that will save our time, developing web applications.

1. HTML5 boilerplate

HTML5 Boilerplate ~ 43 Useful and Time Saving Web Development Kits and Frameworks

HTML5 Boilerplate helps you create fast, adaptable and robust websites or web apps. Save Time and Create websites or web apps with Confidence using HTML5 boilerplate.

2. JqueryUI

JqueryUI ~ 43 Useful and Time Saving Web Development Kits and Frameworks

jQuery UI is a organized set of user interface interactions, themes effects, widgets built on top of the jQuery JavaScript Library and that’s why I love jQuery. Whether you are building highly interactive web applications or just need to add a date picker to a form control, jQuery UI is the perfect choice for you.

3. AngularJS

AngularJS ~ 43 Useful and Time Saving Web Development Kits and Frameworks

AngularJS is powered by Google. AngularJS lets you extend HTML vocabulary for your app. The ensuing environment is extraordinarily readable, expressive and quick to develop.

4. Backbonejs

BackboneJs ~ 43 Useful and Time Saving Web Development Kits and Frameworks

Backbone.js gives structure to web applications by providing models with custom events, key-value binding, views with declarative event handling, collections with a rich API of enumerable functions and connects it all to your existing API over a RESTful JSON interface.

5. EmberJS

Ember ~ 43 Useful and Time Saving Web Development Kits and Frameworks

Ember.js is a framework for creating ambitious web applications that is built for productivity. Designed with keeping developer ergonomics in mind. Its friendly APIs can help you getting your job done fast.

6. CanJS

CanJs ~ 43 Useful and Time Saving Web Development Kits and Frameworks

CanJS is a flexible, powerful and fast Javascript library.

7. YUI library

YUI ~ 43 Useful and Time Saving Web Development Kits and Frameworks

YUI is an open source and free JavaScript-CSS library for building richly interactive web applications.

8. Twitter Bootstrap

Twitter Bootstrap ~ 43 Useful and Time Saving Web Development Kits and Frameworks

Twitter Bootstrap is the Front-end Framework that is Intuitive, Sleek and Powerful. It can be used for faster and easier web development.

9. Gumby framework

Gumby ~ 43 Useful and Time Saving Web Development Kits and Frameworks

Gumby Framework has a latest version called Gumby 2 which is built with the power of Sass. If you you don’t know what actually Sass means then let me tell you that it is a powerful CSS pre-processor which allows us to develop Gumby itself with much more speed and gives you new tools to quickly customize and build on top of the Gumby Framework.

10. Drupal

43 Useful and Time Saving Web Development Kits and Frameworks
Drupal is one of the most powerful and used Content Management System in the world. It’s an open source content management platform that is powering a whopping number of websites and applications that include Government, Corporate and Personal websites,

11. WordPress Framework

Wordpress ~ 43 Useful and Time Saving Web Development Kits and Frameworks

WordPress is web software you can use to create a beautiful website or blog. I would like to say that WordPress is both free and priceless at the same time.

12. Yii Framework

43 Useful and Time Saving Web Development Kits and Frameworks
Yii Framework is the Fast, Secure & Professional PHP Framework as they claim it on their website. But do you think that it’s really capable of what a great CMS can do? Please share your views with us below in comments.

13. Express Framework

Express Framework ~ 43 Useful and Time Saving Web Development Kits and Frameworks

Express is a flexible and minimal, Node.js web application framework that provides a robust set of features for building single, multi-page and hybrid kinda web applications.

14. Socket.io

Socket ~ 43 Useful and Time Saving Web Development Kits and Frameworks

Socket.IO aims to make realtime apps possible in every browser and mobile device alongwith blurring the differences between the various transport mechanisms. It’s care-free realtime 100% in JavaScript.

15. Meteor

Meteor ~ 43 Useful and Time Saving Web Development Kits and Frameworks

Meteor is an open-source platform that is intended for building top-quality web apps in afraction of the time, whether you’re an expert developer or just getting started.

16. Derby

Derby ~ 43 Useful and Time Saving Web Development Kits and Frameworks

MVC framework makes it easy to write and create realtime, collaborative applications that can run in both browsers and Node.js.

17.TowerJS

TowerJS ~ 43 Useful and Time Saving Web Development Kits and Frameworks

Small components for manipulating data, building apps and automating a distributed infrastructure.

Future languages of web development

It’s no secret that technology trends move fast — and the tools and means for building those technologies constantly evolve. But if you don’t lift your head up every once in a while to look past the next year’s projects, you could end up coding yourself down an inescapable rabbit hole.

To help you prepare for — or at least start contemplating — a future that’s screaming across the sky faster than we can see, we’ve compiled some of the languages that would be part of the future of web development.

1. Ceylon
Gavin King denies that Ceylon, the language he’s developing at Red Hat, is meant to be a “Java killer.” King is best known as the creator of the Hibernate object-relational mapping framework for Java. He likes Java, but he thinks it leaves lots of room for improvement.

Among King’s gripes are Java’s verbose syntax, its lack of first-class and higher-order functions, and its poor support for meta-programming. In particular, he’s frustrated with the absence of a declarative syntax for structured data definition, which he says leaves Java “joined at the hip to XML.” Ceylon aims to solve all these problems.

2. Dart
Like JavaScript, Dart uses C-like syntax and keywords. One significant difference, however, is that while JavaScript is a prototype-based language, objects in Dart are defined using classes and interfaces, as in C++ or Java. Dart also allows programmers to optionally declare variables with static types. The idea is that Dart should be as familiar, dynamic, and fluid as JavaScript, yet allow developers to write code that is faster, easier to maintain, and less susceptible to subtle bugs.

3. Opa
Web development is too complicated. Even the simplest Web app requires countless lines of code in multiple languages: HTML and JavaScript on the client, Java or PHP on the server, SQL in the database, and so on.

Opa doesn’t replace any of these languages individually. Rather, it seeks to eliminate them all at once, by proposing an entirely new paradigm for Web programming. In an Opa application, the client-side UI, server-side logic, and database I/O are all implemented in a single language, Opa.

Opa accomplishes this through a combination of client- and server-side frameworks.

4. Go
Go is a general-purpose programming language suitable for everything from application development to systems programming. In that sense, it’s more like C or C++ than Java or C#. But like the latter languages, Go includes modern features such as garbage collection, runtime reflection, and support for concurrency.

5. X10
X10 handles concurrency using the partitioned global address space (PGAS) programming model. Code and data are separated into units and distributed across one or more “places,” making it easy to scale a program from a single-threaded prototype (a single place) to multiple threads running on one or more multicore processors (multiple places) in a high-performance cluster.

6. Chapel
Chapel is part of Cray’s Cascade Program, an ambitious high-performance computing initiative funded in part by the U.S. Defense Advanced Research Project Agency (DARPA). Among its goals are abstracting parallel algorithms from the underlying hardware, improving their performance on architectures, and making parallel programs more portable.

Communities for web developers

Hundreds of blog posts and articles are published every day, but there is no way you can read all of them. We think you should have a strategy to keep up to date, follow these simple steps:

1. Follow Cool People
Front-end leaders help you to stay on top of relevant news and trends. They are in-the-know and they work on a specific topic.

Twitter can be a great place to find people who are in-the-know.

2. Find the Best Sources
Around the web there is lots of useful information about front-end news and trends, but sometimes it’s too hard to find and read all of them. It’s a mess and you will go crazy!

Therefore, we have put together some of the best sources you might use:

  • Skilled Up
    SkilledUp was built to help you find online courses, gain and increase your skills and prove your worth to employers. Call it a public service, call it amazing – we call it transforming education. Online courses empower you to build foundations of knowledge that help propel you further professionally and personally. That’s transformative.
  • Treehouse Blog

    The Treehouse blog provides valuable content on web development, web design, and startup tips.
  • CSS Wizardry

    A specialised blog in writing and scaling CSS for large apps and websites.
  • Open Web Platform Daily Digest
    http://uptodate.frontendrescue.org/src/assets/no-image.png
    Provides daily content about W3C, HTML, CSS, JavaScript, the Web APIs, web browsers.
  • Mozilla Hacks Weekly Articles
    https://pbs.twimg.com/profile_images/2631319542/aa071efb0ed133973c2ab9fea8b5f6d8_200x200.png
    An agnostic web browser resource, focused on the Open Web and sharing knowledge.

For more list visit: How to keep up to date on Front-end technologies

3. Attend Conferences
Thousands of developers attend conferences to promote the latest technologies, share ideas, thoughts or experiences and learn from others. They discuss the best practices, standards and trends. You should participate in order to meet awesome people and organizations who do what you do.

  • Fronteers conference
    Conference of the Dutch non-profit trade organisation for front-end developers.
  • Front Trend
    A gathering where front-end lovers and tech entrepreneurs discover the latest trends.
  • HTML5DevConf
    HTML5DevConf
    Has become the largest JavaScript and HTML5 developers conference in the world.
  • Fluent Conf JavaScript & Beyond
    Featuring the best in JavaScript and progressive Web development.
  • Front End Ops Conf
    Front End Ops Conf
    A 2-day conference in San Francisco dedicated to the emerging discipline of front end operations.

For more list visit: How to keep up to date on Front-end technologies

4. Attend Meetup Groups
The process of learning is vast and one way to do it is to learn from others as well. Meetup Groups are common yet effective. It is important to share and hear what others think, or how others develop their websites.

Below are some of the lists of the largest meetup groups:

What makes someone to be a web developer?

Becoming a web developer is a choice. It’s a personal decision that must be decided by each individual.

I cannot make assumptions of what makes you, them or me a web developer because each of us have our own reasons. However, what I can share for you is important if you want to become a front-end web developer:

1. Learn basic HTML and CSS

Things to Know: HTML

  • General HTML structure of a webpage (html, head, body).
  • The Document Object Model (DOM) – What it is.
  • Tags – How to make links, lists, etc. It doesn’t need to be memorized, but you should be able to use different tags when you need them from a reference.
  • How to structure the content of a website with divs (div-based markup)
  • Semantic markup – when to use different headers (h1s, h2s, h3s) and tags (article, section, span, etc.)
  • How to embed a .css file into a page
  • (Advanced) How to structure markup that supports accessibility compliance, like for users with screen readers

Things to Know: CSS

  • How to target different elements on a page, at different depths (i.e. a span within a div).
  • Displaying elements – block, inline-block and inline
  • Style attributes that can be set for colors, fonts, borders, etc.
  • Positioning (relative, absolute, fixed) and floating elements
  • The box model, margin/padding, and what box-sizing: border-box does (note: it will save your life)
  • ids (#id) vs classes (.class) and CSS selectors.
  • CSS specificity, or when styles override other styles.
  • (Advanced) Responsive design — What is it? What are media queries and how do you use them?
  • (Advanced) SASS, LESS — CSS compilers. This will make your life much easier, and any modern web shop will be using a compiler nowadays. I will say to only start using SASS/LESS after you write CSS by hand, to both remove the “magic” and to internalize the lesson of how much writing CSS by hand sucks.
  • (Advanced) CSS3: border-radius, box-shadow, text-shadow, etc.

2. Learn vanilla JavaScript

Things to Know

  • What do you mean “everything is an object?”
  • What is a callback and why is it important?
  • Global scope, function scopes, what is the global namespace and why can it be bad?
  • Namespacing your code and why
  • (Advanced) Closures
  • (Building on closures) Object-oriented JavaScript — the biggest game changer for me personally. I found the “Object Oriented JavaScript” chapter in John Resig’s “Pro JavaScript Techniques” to be very enlightening.
  • (OO JS) Prototypal inheritance

3. Understand the basic concepts of programming

Things to Know

  • Data types: string, int, double, char, etc.
  • Variables
  • Functions/methods and passing arguments
  • For loops
  • If-else statements
  • Arrays and how to loop over their contents
  • Key-value pairs and how to loop over their contents
  • Operations: addition, subtraction, modular arithmetic, concatenating strings, substrings, etc.

4.

Learn jQuery

Things to Know

  • (document).ready(function() { });
  • What (this) represents (wrapping a DOM element as a jQuery object, which can then be manipulated using jQuery commands)
  • How to select classes and ids
  • Familiarity with api.jquery.com and how to look up different functions
  • How to use the various effects (fade, slide, hide, show, etc.)
  • Traversing the DOM tree (children(), parents(), find(), etc.)
  • Chaining commands
  • How to respond to and trigger events
  • What does it mean for something to be asynchronous?
  • How do people debug jQuery bugs? What is console.log() and the `debugger` command? How can you set breakpoints in JavaScript files and step in/over them?
  • (General) What JSON is, and what a JSON response looks like
  • (Advanced) What is AJAX?
  • (Advanced) How to receive data from an API via AJAX and parse the data into the DOM

What are your biggest challenges as a front-end web developer?

Becoming a web developer is challenging. Either you’re self-taught or a degree holder both have to endure struggles on reading and understanding theories to apply them. Series of continuous cycles of failure to go through before having a successful page that would satisfy clients.

But the challenges does not stop there. Even if you are the best front-end web developer you think you are, challenges, struggles are still out there. To name some of them, I’ve gathered some answers given by professional web developers around the world.

Here are the following:

  • Coding Javascript in a robust way. Backend software is evolved and it’s relatively easy to create good, maintainable code there, using MVC and mature CMS’s. With Javascript, I wouldn’t say that it’s as easy, since applications haven’t been as Javascript-intense as they are now for more than half a decade. You need to put more effort into making sure all Javascript is working in all browsers and that new code is written and placed in a maintainable way.
  • Keeping a good balance between long term and short term design desitions. Too short, and the code will break apart upon your next change. Too long, your team wont be agile enough.
  • Communicate key design concepts, best practices and library usage throughout the team. With too little freedom, people will get bored and do a bad job. With too much freedom people will create clusters of good code that doesn’t work well together. I don’t want a cathedral nor a bazaar.
  • Balancing automated testing. Test too much, you spend time building tests. Test too little, stuff will break in production.
  • Balancing iteration time between major framework upgrades.
  • Getting people to understand MVC, for all the obvious reasons.
  • Communicating SEO concepts, both to editors and developers.
  • Keeping sites easy to maintain for editors. If the site isn’t easy to maintain for editors, it really doesn’t matter how good your code is. A site needs to be easy and fun to update and keep current.
  • Making sure things look the same across all versions of Internet Explorer as they look in other browsers.
  • Making sure every UI element (button, navigation, link) work as intended whether or not the user has JavaScript or cookies disabled (technology-independant development).
  • Should I choose to use the current web browser standards and technologies (think HTML5 and CSS3), providing negative user experience in older browsers, that haven’t adopted this technology yet, or use images and other “tricky” methods to achieve the same results, sacrificing page loading time and modern standards standards.
  • HTML tables
  • Debugging JavaScript code (for performance or errors, especially if it’s minified)
  • Managing client expectations.
  • Educating the client.
  • Preventing scope creep.
  • Client insecurities/fears.

To know more about current challenges faced by different web developers you can join their conversation at Quora: “What are your biggest challenges as a front-end web developer?”

If you have somethings you want to add on, feel free to comment or send me an email of your biggest challenges as a front-end web develop. Thanks.

Top skills every web developer should have

As a web developer, besides writing HTML code, there is much more to do before the site can go live. You may consider about user experience, device compatibility, security etc. To be a good web developer, you should acquire some essential skills for web development.

It is not enough nowadays to rely on the basics. Web development had been rampant and many people are into it. To be able to compete with others you must consider having the following essential skills:

1. Programming Competency
Web developers must be able to code. This is supposed to sound obvious. An effective web developer must be able to write syntactically valid HTML, CSS, and even JavaScript.

2. Adaptability
The technology is not constant but keeps on changing, so a web developer can’t have the luxury to sit back and relax. They need to learn and move along with the change. It’s impossible to know where web development will go in 5 years, but those who follow standards bodies or at least read tech blogs have a much better understanding of upcoming changes and growing trends. It’s not enough to follow the industry. Web developers must also understand their users and how they use the product.

3. Security
Every web developer must understand how malicious people can use their product to attack the site or other even other users. If the web developer has skill #1, they should be familiar with the security concerns of the industry and common defenses.  The security of a website is a major concern which should be answered and the developer should be capable enough to provide a capable and secured website.

4. Accessibility
Developers must be able to write code that is flexible enough to be used in different ways. Search engines and screen readers for the blind are two examples of machines interpreting your code. Sites that are heavy with Flash or foreground images for UI tend to struggle here. Accessibility at its core is really about usability. Web developers must know about any obstacles between the user and the product to better design it. Know your user, set limits to what you will and will not support, implement a cross-compatible solution, and test thoroughly.

5. Testing
All web developers must be able to test their code in multiple browsers. It’s easy to test for our own personal browser of choice and ignore the rest, but the web is about diversity and the browser landscape is very diverse. A website continuously need updates and a developer should ensure that the user doesn’t get hampered when one is making updates. It should be a smooth process. Occurrences of errors are inevitable on any website and one should make sure that unfriendly errors are not visible to the users.

6. Creativity
This may sound unusual but creativity is the back bone for any art. Web developing is an art and an artist can only produce a beautiful website. The codes are the colors and a web developer like a true artist should know how to play with codes. The end result should be exceptional enough so that it makes you different from the crowd.

Becoming a great web developer

Becoming great in almost all aspect in life is not easy. It requires time and effort. It is not something you can have in 24 hours, it needs devotion and commitment.

Much like in web developing. Nowadays, people are into web developing and the market becomes very saturated because there are many of those out there.

A web developer can be one of your most critical hires. After all, that’s the person who will create the online face of your company and enable you to interact virtually with your customers.

So, it’s especially important that you hire the right talent the first time out. Otherwise, you risk hurting your business, as well as wasting time and money seeking a replacement.

To know how to become one of the best web developer, you need to consider the following:

Devops
Devops flies in the face of two traditional silos: production, which keeps things running, and development, which makes new stuff. The silos result in two camps with little sympathy for each other. Devops is a huge field in itself, encompassing continuous deployment and lots of automation. This is a sweeping summary, but the key thing developers need to understand is the stack they’re running on.

Know how to fix it.
The ability to fix apps requires excellent problem solving skills, but not just debugging code. Learn to debug and use other options and methods as well.

Drawing and writing
Drawing is the most direct way of communicating what stuff will be like. Developers must be able to draw their ideas. Developers must be able to prototype on paper, printing screenshots and scribble on them just to communicate their intention.

Understand the medium on what the internet says
Googling for ‘essential web development skills’ brings up what you’d expect. Framework knowledge, x-browser, CSS and JS. They list frameworks you should know, platforms you must be writing for and new trends you should be keeping an eye on. A developer can understand every detail of the system, tell you every feature of an API and a new CSS technology but still produce something unusable.

Developers, like everyone, need to understand their medium – but they must also understand the audience, be that the users, the team or other developers. They need to understand how their medium fits into the world (in other words, the production environment) and what effect it has (how people use it).

Coding don’t cut it anymore
We’re in a world where coding is becoming less impressive. Everyone builds sites, some of them code but you don’t have to. It’s no longer just the nerdy who can create sites, apps and features. Since the web came along and people could teach themselves there have been self-taught developers. But even the graduates are under threat.

Developers need to be better in two ways: breadth and depth. They need to understand the breadth of human interactions in their team and with the things they build. They need to understand the depth of the system they’re working with, down to the O/S.

Free online web development courses

Web design can be daunting. Just the sheer amount of new techniques and acronyms appearing every day can make it seem scary and confusing, even if you’re a professional web designer, let alone a beginner. But don’t worry – help is at hand in the form of easy-to-understand web design training resources on the web.

There are many approaches to web design training – some paid, some free; some interactive, some not; some based on text, others on video.

Below are some of the best online web development course you can find free online:

1. Codecademy

web design training

Codecademy describes itself as the ‘easiest way to learn how to code’ and has established a great reputation for itself within the web design community.

This free web design training resource runs through the path of building websites, games, and apps in an engaging way, easing users in gently with a very basic first lesson.

The site also features a social network aspect, meaning users can interact with and learn alongside friends and colleagues. And, like Treehouse, the team at Codecademy also understand the power of a badge, offering them at various key points in the training.

2. Webdesigntuts+

web design training

Webdesigntuts+ offers a huge range of tutorials on a wide range of web design and web development topics for free. There’s also a premium area with paid content. The site’s part of the wider Tuts+ network, which includes PSD Tuts for Photoshop tutorials and WP Tuts for WordPress tutorials.

3. Sitepoint

web design training

Australian company Sitepoint makes its money selling web design and development books, but that doesn’t stop it providing some fantastic tutorials on its site for free. These tend towards the techie, but there are also some useful introductions to web design for beginners, such as this article on HTML and CSS.

4. Udacity

web design training

Want to learn how to build a simple web browser in just seven weeks? Or how to build a search engine like Google? Well, with Udacity you can do both and best of all the training is absolutely free and is led by expert professors from Stanford and the University of Virginia.

For anyone interested, courses are not offered on-demand. Instead, prospective students can visit the website for a class schedule and enrol accordingly.

5. LearnToProgram.tv

If you’re interested in web development as a career but you don’t really know where to start, this short, fast-paced course might be just the thing to you. Hosted by Mark Lassoff,LearnToProgram.tv’sroduction to Web Development is designed to give you a preview of the life of a web developer.

Using fast-paced lectures, code samples and lab exercises, it’ll introduce you to HTML5, CSS and JavaScript, teaching you techniques used by professional web developers every day. The standard price doe the course is $59, but if you use the link provided you can sign up for free.

6. Khan Academy

What started as a way for Salman Khan to tutor his cousins remotely has grown into an enormous free online learning resource. Khan Academy wants to provide a free world-class education for everyone, and boasts a dizzying collection of courses, mainly covering more traditional subjects such as maths and science.

Computing subject aren’t so well served, but if you want to learn JavaScript then you’re in luck. It features three JavaScript courses that’ll teach you the fundamentals of programming: an introduction to JS, teaching you enough of the basics to be able to draw and animate; and two advanced courses aimed around games and visualisations, and natural simulations.

Learning web development

To be a web developer, you will need to master quite a few concepts, such as user interface design, server side programming, client side programming, utilizing a database, etc.

Learning to develop web applications is hard. Don’t doubt it. Forget about all the outlets promising you to become a developer in 24 hours, a week, a month. Forget about the ones that tell you things like ‘this is the only thing you’ll need to learn’.

To cut the story short let me begin by asking this simple questions:

Where to start?

I find it easier to learn something if you have a concrete project in mind. This will let you apply the theory you learn in a real life context. If you don’t have one, I can propose you one: a web site that lets users post photos, vote on them and comment them. You’ll need to build an admin section as well where you can manage your site, your users and the content. Think of any other features you’d like to implement in your website: tagging, geolocation, applying filters on photos, … The only limit is your own creativity!

What to learn/know?

1. Decide your path and learn the language

  • C#: The C# language, together with the Microsoft .NET platform and the ASP.NET MVC framework is especially well-suited if your main operating system is Microsoft Windows. C#, although possible, doesn’t run well on Mac OS X nor Linux. It is the language of choice for many established corporations.
  • Ruby: Ruby together with the Ruby on Rails framework is a very popular framework for building web applications. Its community is wide and always helpful. You will find many resources online to help you with your learning.
  • Python: Python is often seen as a competing language to Ruby. The language itself is very well-suited for learning how to code. When it comes to developing web applications, there’s the Django framework. I personally find that there are less resources available online for beginners but that is not a showstopper.

2. Know the “common knowledge”

    • HTML and CSS
      HTML stands for HyperText Markup Language. It is by using HTML that you instruct web browsers (Chrome, Safari, Firefox, etc…) which elements a web page will contain. A paragraph, a header, a bullet points list, an image and so on.CSS, the acronym for Cascading Style Sheets, is responsible for telling a browsers how HTML elements shouldlook. The font color, the size of images, the position of your paragraphs and much more.To learn both HTML and CSS at the same time, get the book Head First HTML and CSS.
    • A version control system (Git)
      Git is a version control system. It keeps track of changes in your code files and allows you to revert them at an earlier stage if you made a mistake. If you later plan to work with other coders, using a version control system is not an option. There are many different version control systems such as Microsoft Team Foundation Server, Mercurial, SVN or Git. Go with Git.Learn Git here: Learn to use Git and remote repositories in 15 minutes
    • SQL
      In order to create dynamic web apps, at some point, you will need to store data. Any kind of data. Whether blog posts, user profiles, player scores and so on. That’s what databases are for. In order to navigate through a structured database, you make use of one language called Structured Query Language or SQL for short.Read: Sams Teach Yourself SQL in 10 Minutes (4th Edition).