Web Dev Wiki

1. How do I learn to be a web developer?

There is no easy answer for this, as people have taken very different paths to end up in their careers. However, a solid foundation usually resides in learning:

  • HTML
  • CSS
  • JavaScript
  • Git

In that order. These three things generally provide the basis for any modern website or application. From there, you have options. Jobs will often be broken down into back-end and front-end developers. There is no clear delineation between the two, but the general breakdown is:


  • Primarily HTML / CSS / JavaScript
  • Building the part of the site that the user sees
  • Sometimes cutting up PSDs (Photoshop files) into smaller, easier to manage images
  • Possibility design work in programs such as Photoshop or Sketch


  • Primarily writing one server-side language (PHP, Python, Ruby, C#, JavaScript*, and others)
  • Building the behind-the-scenes code that powers the website and core functionality
  • Working with databases to organize, store, and manipulate data (MySQL, MongoDB, PostgreSQL, and others)
  • Possibility of some DevOps (managing the servers that power websites)

For front-end, supplementing HTML / CSS / JavaScript with knowledge of HTTP, cross-browser inconsistencies, and a modern framework such as React or Vue will help you down the right path.

For back-end, read a little about the different language choices and pick one to start with. You are by no means locked in to your first choice. Choosing a server-side language will be addressed in another question.

Regardless of which path you choose, Git (or a similar source control management tool) is imperative to learn if you want to develop professionally. The great thing is that even if you are working on projects alone Git is still incredibly helpful.

For places to learn, please check the “Where can I learn X technology” question further down.

2. What server-side programming language should I learn first? Should I learn language X or language Y? Is language X better than language Y?

Consider this conversation.

There is no right answer here. The main thing to know is that both good and bad code can be written in any of these languages. Some handle very specific use cases better than others, but when you are first starting out, these cases are much further down the path. There are other languages than the ones listed here, but these are popular choices.

PHP has been an old standby of web developers. It started off as a way to add small pieces of functionality to web pages and has evolved over time into a more mature language. PHP is a favorite of beginners because it is extremely easy to get up and running. However, detractors say that because PHP is lacking (at least until recently) many of the stricter programming conventions of other languages that it is easy to learn poor programming habits. There are likely more tutorials out there for PHP than any other web programming language, so be sure the sources you find are recent.

Ruby is a language that borrowed heavily from many other programming languages to give developers choices on the ways they could solve a given problem. Ruby was massively popularized when the Rails framework came on the public scene around 2005, when it was picked up by many start-ups as the new, “hot”, thing. Many detractors resent Ruby’s former attention while others see it as too unstable. However, Ruby has long-since returned to normal levels of popularity in the past few years and matured into a more typical language.

Python, like Ruby, borrowed heavily from other programming languages to develop a unique style. Where Ruby offers many equal ways to solve a problem, Python is usually more interested in finding one “best” way of completing a task. Many developers recommend Python as a good starting language for this reason.

C# is a Microsoft language that originally closely resembled Java. C# doubles very easily as a more traditional Desktop application programming language. Detractors generally dislike C# because it is a part of the Microsoft development ecosystem (along with .NET, Visual Studio, and other technologies) and can not be swapped out with existing workflows as easily as most other languages.

JavaScript* is a somewhat special case. While it has historically been used as a front-end (client side/in-browser) language, JavaScript has recently seen a rise on the server-side as well. There are pros and cons to using it in this manner, just keep in mind that it will differ from the more “traditional” back-end languages and is seen as a relatively cutting-edge technology (when used on the server). One benefit is that a single language can be used seamlessly to handle complex logic on both the server, and client side.

Average salaries of language-specific developers from Indeed.com

3. What’s a good development workflow? / Tell us about your workflow / Check out my workflow

This question gets asked constantly and often turns into people just talking about how their workflow is better than someone else’s rather than anything constructive. The lesson is that there is no one correct workflow. There are hundreds of tools to try – so give some a whirl and find out what works for you. You can read the following threads to get some ideas:

4. What Text Editor / IDE should I use?

Many developers separate code editors into two categories, IDE and Text Editor. IDE’s are generally targeted at one, specific language, and incorporate a large number of features to help write, debug, and run that language. Text Editors are generally more lightweight and can be used to write any language, but often lack the more advanced, language-specific features of IDE’s. However, there is no clear line here. Many IDE’s are lightweight and can be used for multiple programming languages, and many text editors can be extended to provide language-specific support. Another thing to keep in mind is that although many developers are passionate that their particular code editor is superior to all others, the choice really boils down to what you as an individual work best with. Popular choices include:


IDEs For more information on a comparison of IDEs for a specific language, visit each language’s subreddit

5. What web host should I be using?

There are thousands of web hosts out there and there is no clear “best”. For more info, you can check out the webhosting subreddit. Popular choices include:

6. Where can I learn X technology?

The web is full of resources to learn any given web technology. Popular choices by /r/webdev members are:

7. What tools do you use for optimizing your files?

There’s another wiki page just for listing optimization tools.

This FAQ is not exhaustive. If you believe that there is a great resource that is missing from this FAQ, please message the moderators.

Total Beginner

Learn Web Design – Courses

General Resources

Layout and Responsive Design

Aesthetics and Design



Tools and Software

CSS and Styling

HTML and Semantics

HTML Emails

From Non-Designers

Scroll to Top