Jump to content

Web Dev Languages Help

willnburger

Hi Everyone,

I'm new to web development (I've programmed with other stuff before) and am intensely frustrated by not knowing what I should be learning. Some people say you only need HTML, CSS, JS and PHP. Others talk about SQL, Bootstrap, .NET, Angular, JSON and a bunch of other stuff. I want to be a fully capable web developer, where there is essentially nothing I can't do. Can someone please give me a list of languages I should learn, in the order I should learn them? And a description of what each one does would be nice too. Thanks in advance everybody, I appreciate the help!

Link to comment
Share on other sites

Link to post
Share on other sites

When talking about web (and other applications with user interface), there are two sides - frontend and backend. Those two combined is often called full-stack.

 

Frontend is everything that is displayed to the user. Mostly involves HTML, CSS and JS. This is where you create the design, layouts, set the colors, text etc. Today, a lot of websites use JavaScript libraries and frameworks, such as React, Angular, Next.js or similar to make building faster and much more convenient for the developers.

 

Backend is all the business logic, that works based on user input/actions. If user wants to see a list of books, frontend sends a request to the backend, which fetches data (from a database, for example) and sends it to the frontend. Frontend then displays it (in a table or whatever). Backend is just a HTTP server, be that in PHP, Go, Python, Ruby, Rust, Java or something else. Often the choice is based on what the developers already know and are most comfortable with.

 

JSON is just JavaScript Object Notation, it's a file format. It is one way to display and transfer data between services/clients and is machine-readable.

Bootstrap is just one library out of thousands (millions?) to design your website. It uses just CSS and JS to achieve that.

SQL is a database query language used with mostly relational databases (PostgreSQL, MariaDB, Oracle).

 

It's hard to recommend a specific order to learn them. Do you want to do full-stack? How much programming experience do you have?

HAL9000: AMD Ryzen 9 3900x | Noctua NH-D15 chromax.black | 32 GB Corsair Vengeance LPX DDR4 3200 MHz | Asus X570 Prime Pro | ASUS TUF 3080 Ti | 1 TB Samsung 970 Evo Plus + 1 TB Crucial MX500 + 6 TB WD RED | Corsair HX1000 | be quiet Pure Base 500DX | LG 34UM95 34" 3440x1440

Hydrogen server: Intel i3-10100 | Cryorig M9i | 64 GB Crucial Ballistix 3200MHz DDR4 | Gigabyte B560M-DS3H | 33 TB of storage | Fractal Design Define R5 | unRAID 6.9.2

Carbon server: Fujitsu PRIMERGY RX100 S7p | Xeon E3-1230 v2 | 16 GB DDR3 ECC | 60 GB Corsair SSD & 250 GB Samsung 850 Pro | Intel i340-T4 | ESXi 6.5.1

Big Mac cluster: 2x Raspberry Pi 2 Model B | 1x Raspberry Pi 3 Model B | 2x Raspberry Pi 3 Model B+

Link to comment
Share on other sites

Link to post
Share on other sites

12 minutes ago, jj9987 said:

When talking about web (and other applications with user interface), there are two sides - frontend and backend. Those two combined is often called full-stack.

 

Frontend is everything that is displayed to the user. Mostly involves HTML, CSS and JS. This is where you create the design, layouts, set the colors, text etc. Today, a lot of websites use JavaScript libraries and frameworks, such as React, Angular, Next.js or similar to make building faster and much more convenient for the developers.

 

Backend is all the business logic, that works based on user input/actions. If user wants to see a list of books, frontend sends a request to the backend, which fetches data (from a database, for example) and sends it to the frontend. Frontend then displays it (in a table or whatever). Backend is just a HTTP server, be that in PHP, Go, Python, Ruby, Rust, Java or something else. Often the choice is based on what the developers already know and are most comfortable with.

 

JSON is just JavaScript Object Notation, it's a file format. It is one way to display and transfer data between services/clients and is machine-readable.

Bootstrap is just one library out of thousands (millions?) to design your website. It uses just CSS and JS to achieve that.

SQL is a database query language used with mostly relational databases (PostgreSQL, MariaDB, Oracle).

 

It's hard to recommend a specific order to learn them. Do you want to do full-stack? How much programming experience do you have?

Wow! Thanks for the info, I'm pretty good at Python and I want to be a full stack developer. My end goal would be to think of something cool to build online, and just build it. Maybe it's ecommerce, maybe it's a social network; what is the minimum knowledge I'd need to be at that level? Thanks for the help/

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, willnburger said:

Wow! Thanks for the info, I'm pretty good at Python and I want to be a full stack developer. My end goal would be to think of something cool to build online, and just build it. Maybe it's ecommerce, maybe it's a social network; what is the minimum knowledge I'd need to be at that level? Thanks for the help/

Python knowledge is good. Look up Django or Flask, these are most widely used frameworks for running Python web servers.

Start by looking into basic HTML, CSS and JS. Once you get the hang of those, start looking into JavaScript libraries such as React, Angular, Next.js or others. Whichever you prefer, they all are widely used today.

HAL9000: AMD Ryzen 9 3900x | Noctua NH-D15 chromax.black | 32 GB Corsair Vengeance LPX DDR4 3200 MHz | Asus X570 Prime Pro | ASUS TUF 3080 Ti | 1 TB Samsung 970 Evo Plus + 1 TB Crucial MX500 + 6 TB WD RED | Corsair HX1000 | be quiet Pure Base 500DX | LG 34UM95 34" 3440x1440

Hydrogen server: Intel i3-10100 | Cryorig M9i | 64 GB Crucial Ballistix 3200MHz DDR4 | Gigabyte B560M-DS3H | 33 TB of storage | Fractal Design Define R5 | unRAID 6.9.2

Carbon server: Fujitsu PRIMERGY RX100 S7p | Xeon E3-1230 v2 | 16 GB DDR3 ECC | 60 GB Corsair SSD & 250 GB Samsung 850 Pro | Intel i340-T4 | ESXi 6.5.1

Big Mac cluster: 2x Raspberry Pi 2 Model B | 1x Raspberry Pi 3 Model B | 2x Raspberry Pi 3 Model B+

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, jj9987 said:

Python knowledge is good. Look up Django or Flask, these are most widely used frameworks for running Python web servers.

Start by looking into basic HTML, CSS and JS. Once you get the hang of those, start looking into JavaScript libraries such as React, Angular, Next.js or others. Whichever you prefer, they all are widely used today.

I couldn't really find a good tutorial for Django. If I'm good at HTML, CSS, JS, React and Django; am I good to build just about anything? Is there a good tutorial for django that you've found?

Link to comment
Share on other sites

Link to post
Share on other sites

20 minutes ago, willnburger said:

I couldn't really find a good tutorial for Django. If I'm good at HTML, CSS, JS, React and Django; am I good to build just about anything? Is there a good tutorial for django that you've found?

Haven't worked with Django myself, so can't recommend anything specific.

"Just about anything" - easy to say, but you will definitely run into some projects, which are way too much for a single person. But really depends how much time you can spend and how well you learn.

 

All backends can do most of the same stuff really, some have it easier, some a little more difficult.

HAL9000: AMD Ryzen 9 3900x | Noctua NH-D15 chromax.black | 32 GB Corsair Vengeance LPX DDR4 3200 MHz | Asus X570 Prime Pro | ASUS TUF 3080 Ti | 1 TB Samsung 970 Evo Plus + 1 TB Crucial MX500 + 6 TB WD RED | Corsair HX1000 | be quiet Pure Base 500DX | LG 34UM95 34" 3440x1440

Hydrogen server: Intel i3-10100 | Cryorig M9i | 64 GB Crucial Ballistix 3200MHz DDR4 | Gigabyte B560M-DS3H | 33 TB of storage | Fractal Design Define R5 | unRAID 6.9.2

Carbon server: Fujitsu PRIMERGY RX100 S7p | Xeon E3-1230 v2 | 16 GB DDR3 ECC | 60 GB Corsair SSD & 250 GB Samsung 850 Pro | Intel i340-T4 | ESXi 6.5.1

Big Mac cluster: 2x Raspberry Pi 2 Model B | 1x Raspberry Pi 3 Model B | 2x Raspberry Pi 3 Model B+

Link to comment
Share on other sites

Link to post
Share on other sites

 

5 minutes ago, jj9987 said:

Haven't worked with Django myself, so can't recommend anything specific.

"Just about anything" - easy to say, but you will definitely run into some projects, which are way too much for a single person. But really depends how much time you can spend and how well you learn.

 

All backends can do most of the same stuff really, some have it easier, some a little more difficult.

Alright, thanks man. By do anything I mean I won't have an idea for a web app and not have the skills to build it. Thanks for the help.

Link to comment
Share on other sites

Link to post
Share on other sites

For Web, the minimum you'll need is HTML and CSS. HTML is used for the sites structure, CSS is used for styling the structure and making it adapt to differente screen sizes. Nowadays, JavaScript is also part of basically any website you'll find. The usage varies heavily, depending on the site you visit. Some use it to enable DropDown menus, other sites build entire applications inside the browser using only JavaScript. Full web applications are usually built using a framework like React, Angular or Vue with React being the most popular nowadays.

A popular choice for the backend is building the backend with Node.JS, meaning you run your backend code on the Chrome V8 JavaScript engine. The benefit of this is mainly, that the devs can use the same language (JS) for front and backend work (although sharing the same code rarely works). In other languages there are some very popular frameworks you can use, here are some I know and used for experimentation

  • Spring Boot (Java): Often used in large companies; Very complete featureset, includes authentification, routing, security etc.
  • Django (Python): Probably the most popular Python web framework. Includes templating, security, routing etc. Very opinionated on how you do stuff
  • Flask (Python): Popular, very lightweight framework. Not as many out of the box features as Django, but less opinionated on how you do stuff
  • Ruby on Rails (Ruby): On of the older frameworks, but still actively maintained. Used by big players like Basecamp and GitLab. Lots of features out of the box, but also pretty opinionated
  • Express.js (node.js): Pretty barebones, used as the basis for lots of other Node.js web frameworks. Only includes basic features like routings, but can be easily extended using community packages.
  • Laravel (PHP): Very complete package, pretty easy to learn but also very opinionated. Probably the most popular PHP framework nowadays.

Each of the frameworks has its own set of benefits and problems. You can basically do anything with each of these frameworks, If you're looking for job opportunities, I'd guess that learning Node.JS and Spring Boot will give you the most opportunities, but that varies heavily from country to country. The popularity of PHP is decreasing, but in my experience there is still a high demand for skilled PHP devs. If you already have some good Python knowledge, maybe you want to stick to Python and pick a Framework like Django or Flask. If you're open for something new, maybe learning a Node.js framework is a good choice (you'll have to learn JS either way).

 

Becoming a Fullstack webdev is pretty hard. The frontend itself is challenging, as well as the backend. Another challenge is connecting both. Frontend developers need a good understanding on how the browser works, what differences between the browsers exist, how to optimize for speed and for search visibility. Backend developers need have quite a bit of networking kownledge, software architecture and should know how to scale their services.

Both disciplines are challenging, but it is a goal worth working for. However, I'd recommend you start working on on side first and gain some experience there. Since frontend developers have nothing to do without backend devs and vice versa, I'm sure you'll fine someone to build a backend or frontend, depending on what you decide to learn first. Also, there are lots of public apis out there, giving you access to interesting data you could use in your frontend applications.

 

There are quite a lot of really helpful resources out there to get you started

  • Udacity: Lots of free online classes for a variety of topics, built by industry leaders and universities. The courses themselves are free, if you want to take a final test the also offer "Nanodegree" programs, price depends on the program.
  • PluralSight: A lot of high quality online courses. Usually not free, but they decided to make it free during April (one of the few positive sides of the current situations)
  • w3schools: Offers a lot of resources for HTML, CSS and basic JavaScript. Only text tutorials available, but very easy way for beginners to start building websites.
  • Fireship (YouTube): Great YouTube channel, mainly focused on frontend development and working with Firebase (a Google Product), but offers quite interesting short insights into other technologies as well. Great resource once you made some progress.

YouTube in general is a great resource. Depending on what Framework you choose, there are usually pretty good tutorials on how to get started. I'd expect to have Express.JS and Ruby on Rails to have the most tutorials on YouTube. Some frameworks also offer a getting started section. These are usually very good places to start from.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×