I’m a recent grad with a BS in CS. I have been interested in doing some local freelance gigs developing websites. I took a course in school on web dev and so I have HTML, CSS, and some Javascript under my belt. I’m currently taking a Web Development Bootcamp on Udemy which covers both front and back end web development. I’m about to finish the front end development portion of the course. After I finish the front end portion, I feel like I would like to take on some front-end only gigs for the moment while I tackle learning back-end. Before doing so, I have some beginner questions regarding web development for anyone who has been doing freelancing in web dev for a while:
What are the essential front-end tools I need to know if I want to go in front-end gigs? I have HTML, CSS, Javascript, and just recently, jQuery under my belt. Is this enough for now or do I need to learn a bunch more tools?
When making a website for a person, how do I “give” them the website? Where do I deploy the website? Do I need to rent a server for my potential clients to host their sites?
That’s all the questions I can think of for now. But if anyone has any advice, I’d appreciate it. Thank you.
With freelancing what tools you use is up to you. I would suggest using Git, and tools like Asana to keep yourself organized. Use a tool like Mamp to develop offline, and make sure you put together a good contract.
For your skills you could offer front end development, but not much in the way of backend. Meaning you will offer mostly static pages, or depend on installing software such as wordpress, woocommerce etc. That’s not a bad thing but you may need to learn how to install things like this for shared hosting.
Delivery depends on the client. Most of my clients when I freelanced already had a web server. They would give me access and I would set up the site once all contract obligations were met. I would learn what kind of web server stack the client needs and make sure their current setup can support it. There is nothing worse then finding out what you create can’t work on their server set up.
Other clients I would just send the template files too and let them figure out installation. This happened mostly when they didn’t have the money to pay for installation or in a few cases “One day I’ll buy hosting myself”. This was pretty rare though, most of my clients wanted me to installation.
There were a few cases where I helped them buy hosting, but this almost never happened. I wouldn’t suggest you go into the business of renting hosting out without a lot more experience.
The hardest part is finding clients and making them pay. The last one works out okay with a good contract and making sure to not deliver anything until they do pay.
@Tirjasdyn Ah okay. Yeah, I noticed also that a lot of job boards for web developers ask for front end developers. I’m not sure if companies just want static pages or however their company works. Also, I’m not familiar of how web hosting services go (goDaddy, Azure, etc) but do you upload your html/css/javascript files to those services and that’s how a website is able to be deployed for everyone to see? If that’s the case, if someone doesn’t have a web hosting service, can’t I suggest to them to purchase a service in which I can upload my files?
Well, that’s why I’m here on the forums for anyone with experience to give me pointers and where to start. Everyone starts out somewhere. I’m not trying to run my own business. I’m trying to do simple local gigs to build my own portfolio for when I apply for jobs. I researched on Medium and an article suggested for recent grads to do freelance jobs to build a portfolio. I probably need much more than programming to build a very complex website for an established company but I’m a recent grad so my current skills are sufficient enough to build simple websites.
For tools, the Chrome Developers Toolkit is going to be your best friend. I’ve been using it daily for the last couple of years and I am still finding new uses for it. Next get yourself a code editor. If you are in CS you most likely already have a favourite one, but do a search here on FCC and you will get lots of reviews about simple code editors as well as full blown IDE’s. Some are better than others for web development as opposed to straight up programming. Also Google search “web development tools”, this will give you extras such as tools to pick good color combinations, tools to compress images, tools to generate cross platform versions of your CSS code, tools to test your new website for mobile responsiveness, etc…
If you decide to use a Content management System ( CMS ) like WordPress ( many many clients will expect this so that they can do simple website maintenance and modifications themselves, like adding new content ), then you should pick up a bit of PHP. Basic PHP is easy to pick up, so if you already know programming basics you will find this part easy. However, true programming in PHP, especially “object oriented” PHP is a pretty deep subject.
As others have said, clients will often have already purchased a web hosting account. For a “ma and pop” basic website the hosting account does not need to be fancy. If you help them out with this they will appreciate it if the account you pick comes with free email, clients always enjoy having email accounts with the same domain name as the company or website name. They will also need to have a registered Domain Name. You cannot publish a website without one. Most hosting companies sell domain names.
When you work on a remote hosting account you will do it by FTP. Some code editors, and most all IDE’s come with a good FTP client packaged in. Everything is done via FTP. If you develop the website locally on your computer you will still push it up to their hosting account via FTP.
To manage payment set up a Paypal account, it is free. You can send them invoices by email, and they can pay securely using Paypal or a credit card or bank account. Another option is to use a freelancing site like Upwork. You can invite you local clients to you on there, and Upwork will hold their money in escrow. Set up milestones for different steps of the project, and then get paid for each step before you proceed to the next one. Just be aware Upwork ( and all the others ) will take a cut of your earnings. As a bonus, you will be building a profile on the freelancing platform as you go, and that will allow you to pick up some extra work from clients there.
I would say that you should also learn Git, at least one front-end framework, and how to use Visual Studio Code.
Basically ZIP up everything that you have in regards to their project and let them download it from your webhost. It is also a good idea to offer them free setup to get them online and charge them a monthly fee for “upgrades and maintenance”. For example with WordPress. Recommend them a webhost, have them purchase it, then you get it all setup for them. That’s what I do.