Web Development Help
Hey guys,
I'm looking to try and get into Web Development, and was wondering if any of you have any good places to start, language preferences and/or resources that come in handy.
All help is greatly appreciated, as further down the line I'd love to be able to make a series of web based products to sell here to help benefit smaller based communities.
Many Thanks
Jazzzi :)
Well it really depends on what you want to do. If you want to do frontend (the part of the web application the user interacts with) I would reccomend getting into HTML, CSS, and JavaScript (js). If you want to do backend development (the part of the app that actually does stuff) I would reccomend starting with PHP. You might also want to learn frameworks like bootstrap(css) and laravel(php) as these will make your life much easier when building web apps. Here are some resources I find helpful:
- w3schools is a great place to find example code and tutortials on how to do certain things. It covers html, css, js, php, and many other languages too.
- If your looking for help I recommend posting on Stack Overflow. Basically it's just a large community of developers of many talents. (also it is very likely the question you are asking on stack overflow has already been answered!)
- When coding any language, be sure to keep documentation handy.
- Do not use Windows Notepad as a IDE, use something like VScode instead
- When coding web apps, you're gonna want to have a local server to test things on, so you don't have to upload your files to your webserver every time you want to test somethings. I recommend using laragon for your local server.
Thats all I have to say really, good luck!
If you want to use PHP, I also recommend reading phptherightway.com
Because sometimes you may learn something wrong because you find sourcecode or tutorial which can show bad code style or ideas. (like using mysql_* functions to use an database, the mysql_* functions are deprecated since php 5.5 and where removed since php7)
Thanks so much for the help! Have already downloaded VSCode and am looking at some of the JetBrains stuff for PhpStorm.
Laragon sounds like a good idea so I'll look into that - did have my eye on Xampp but I'll compare the two.
Once again thanks for the help, means alot! :)
Yeah was going to say I'll make sure to try and not get too outdated, as features get added and remove down the line.
Thanks for your help! :)
Yeah used Composer when trying to get Laravel up and running really came in clutch.
Cheers Owain! :)
For when you're learning I would avoid using Laravel temporarily as it does a lot of things for you and you'd be sitting there thinking everything is magic, and magic is a word you use when you have absolutely no idea how something works.
I would start by using vanilla PHP to experience how easy it is to make mistakes when not using a large well built and well tested framework like Laravel, and to also get a better understanding of how things work under the hood.
It would be good for you to start off by setting some simple goals for yourself like:
- Make a login/logout system
- Make a user registration system
- Make a small blog system based off the previous steps, maybe with an image upload form for a blog header
- Learn how you can exploit the system you just made, especially in terms of how file uploads can be exploited unless you validate them properly
- Learn about CSRF tokens and what the purpose of them are and when you need them
- Learn about XSS, what causes XSS? How can you stop it?
- Learn about SQL injection, what is it, how can it be done, how can you prevent it?
Additionally you can step into the following gradually (advanced):
- Implement a templating engine into your small blog app, instead of displaying HTML directly from PHP maybe you want to implement something like Twig to have better control over your front-end design and to help prevent the possiblity of XSS.
- Look into compiling SCSS into CSS using webpack and use that in your app instead of plain CSS
- Look at how your code is structured and read up on the SOLID principles, how can you follow Object Oriented Programming (OOP) properly in your current app, and more importantly how does it benefit you?
- Try refactoring your current code into using an MVC (Model-View-Controller) layout, where you have Models that correspond to a table in your database and handle communication with the database. A view that handles the templating, i.e through Twig. A Controller that receives any request done to your app through a router (like PHPRouter), fetches the data from a Model and returns the data you need to your View.
After this you can consider moving into Laravel, because now you have at least a basic understanding about how some of the magic in Laravel works. You may still be lost at some of the core principles in Laravel like IoC containers (Dependency Injection), but that is also a very simple concept you can learn in your own time.
I see exactly what you mean, don't rush into it head first, learn the basics and gradually get going as you know how things work.
Thanks for your help Marcuz, means alot! <3