loading...
Cover image for HTML, CSS & JS are not enough (esp if you plan to be a independent dev)

HTML, CSS & JS are not enough (esp if you plan to be a independent dev)

Fayaz Ahmed on June 01, 2020

When I had joined as junior frontend dev 2 years ago, I was very excited to finally start making awesome projects and soon build my own wesbites an...
pic
Editor guide
Collapse
charlottetusset profile image
CharlotteTusset

I'm sharing your views, I'm also Junior and it's only after 6months that I realised the importance of all this. As you mention it, building my own server through Digital Ocean definitely helped me a lot understanding all those concepts. Their tutorials are super detailed and well done!

Collapse
fayaz profile image
Fayaz Ahmed Author

Thanks, and that is exactly why I am wrote this, but some people are just plainly ranting that these should not be done or suggested to beginners, I dunno why, I just stopped replying to them.

Collapse
sno1ukno profile image
Jordan Snow

This is an excellent post...everywhere on the web spouts how you can make a great career as a freelancer just knowing HTML/CSS or HTML/CSS/JS, and that's partially true - if you don't mind outsourcing work that could be putting money in your pocket to some other dev. Here's the thing, if you are going to try to be a one-stop shop for your customers, you have to at least have a working knowledge of a TON of things, and this article really shines a light on that.

Thank you for this one!

Collapse
robinhoeh profile image
robinwatson

Dude, great article! I am now just putting together a list of what I think I am missing and #3 was always a little black-box-y for me at production level for larger work projects. Thanks for this list. Def gonna re-read and ensure I can work on some of these things at work!

Collapse
fasani profile image
Michael Fasani

Good post. I’ve been doing this stuff a long time and I forget how I evolved over time I guess.... I really think being a developer is one of the very best jobs in life today. There is so much to learn and with the help of others we can get by, we can ask for help and there are limitless resources and all it takes is a thirst to continue when all the chips seem stacked against us. We often bash our heads against what feels like a brick wall. Self doubt is common among us but willingness to learn and determination means we can get it done! Often we just need to sleep on it and try again the next day, slowly we become better.

Collapse
lifelongthinker profile image
Sebastian

Great overview 👍. I know how I felt as a beginning web dev some 20 years ago. Back then there were hardly any tutorials, so we had to learn from scratch. It was hard but had the advantage of really learning things from a holistic perspective: creating simple pages locally, generating dynamic pages, configuring the web server, running multiple servers, etc.

Noawadays when I teach beginners or "junior" devs (I don't like the term), one thing I keep telling them is: Do not stop at solving single problems, always see the bigger picture.

But grasping that bigger picture is harder than you might think. There are plenty of tutorials online dealing with certain problems. Getting the whole perspective (as you exemplified in your post) is something that needs a systematic approach. And those can hardly be learned through tutorials.

So, where can you get a systematic overview of your field? You can opt for books, courses or, even better, pet projects in a larger team of seasoned and new developers. As long as these deal with more than single problems, and connect the dots, you are likely to get a fair insight into the global picture.

Collapse
muhimen123 profile image
Muhimen

I am not even 20 years old. 😑

Collapse
lifelongthinker profile image
Sebastian

You'll get there 🤪 Imagine all the great experience you can make until then. 💪💪

Thread Thread
muhimen123 profile image
Muhimen

Perhaps, after 20 years I will write something similar like you did. "I didn't have {something} back then. The only way I could learn was youtube tutorials. " 😅

Collapse
iwpgeek profile image
Mohammed Imtiyaz

Could not stop myself follow you.

Collapse
fayaz profile image
Fayaz Ahmed Author

So true indeed. No amount of courses and tutorials will make you 100% ready, you just have to keep doing it.

20 Years! 😲 You must have seen wordpress being invented 😂

Collapse
lifelongthinker profile image
Sebastian

And imagine a life without YouTube 😅 At least my Amazon account is from 2001. Hope they will send a little something for my anniversary next year 🤣

Thread Thread
salyadav profile image
Saloni Yadav

Gold! Absolute Gold! I can’t imagine where this era of internet will lead us in 20 years to come. But huge respect to you to have seen this internet alert being invented at first place! Sorry I don’t want to make you feel old, just special :P

Thread Thread
lifelongthinker profile image
Sebastian

I was actually late to the party. But it was quite an experience seeing the web grow and mature.

Collapse
bmweygant profile image
Brandon Weygant

Great post. I developed a similar view after learning to code when I started taking an IT support course. I'm blown away how a course designed towards a different career path can help fill in some of the gaps I have as a developer. You were spot on with Linux, SSL's and Domains.

Collapse
agenteand profile image
Luis Solis

This a good post.
you are right "there were tutorials on how to build things but never explained what to do with those projects and that SUCKS!"

Collapse
salyadav profile image
Saloni Yadav

This post is absolute gem. Only recently did I overwhelm myself with this revelation and cursed myself for not putting in extra efforts to get to know internet deeper. It’s crazy how corporate experience restricts you to a very very tiny part of this wide web. Good post man!

Collapse
fayaz profile image
Fayaz Ahmed Author

So true, companies need to teach and be more transparent on how and why their systems are built the way they are.

Collapse
borisimple profile image
Boris Krstić

This article is nicely written, but one sentence is pretty bad here.

"So please stop using WINDOWS as you coding environment."

This is very misleading, and utterly not correct. Will not get more deeply into discussion, but keep in mind that we have different stacks for different reasons/problems.

Collapse
fayaz profile image
Fayaz Ahmed Author

I understand what you are saying, but I have been seen linux being used everywhere, windows has not even come into picture even once, the companies I have worked for used linux servers, freeelance clients projects, hosted most of the time on digital ocean were using linux.

I am not saying Windows is completely out of the picture, just mentioned what I have experienced and telling what most people use.

Collapse
ivansphoto profile image
Ivan P

I am not saying Windows is completely out of the picture, just mentioned what I have experienced and telling what most people use.

I am completely sure that "popular" is not equal to "better" or even to "the best".
For example, the most popular smartphones cost around 200USD. Some models can not provide 30fps even on the home screen. How that can be good/better?

I cannot get: How an operating system on a developing machine is related to an operating system on the "server"... It lives in two different planet/galaxy/worlds.

And what I can not understand more is hate for Windows... If this OS disappears in one day, the world will "crash" after a month. Why? Because 99% of CAD-software exists only for Windows.

PS: Except for Heroku, Zeit, Digital Ocean there is a good choice for a non-backend or non-DevOps person - Jelastic. I do not how it is good "inside", but it is definitely the simplest and the fastest way to run the web-server.

Collapse
tedatcis profile image
Ted Bergeron

Currently, I work in an "all Microsoft shop". We are issued Windows 10 machines. So using the built-in Windows Subsystem for Linux (WSL) is a great way to practice using Linux. Microsoft's Visual Studio Code now available on Linux and macOS. So you could use the same editor on Windows or Linux. But generally speaking, we do most of our work in Windows.

Now that Microsoft has embraced Linux servers we are migrating a lot of our cloud apps to Linux servers. So I agree it's good to be very comfortable with Linux.

Collapse
robole profile image
Rob OLeary

Your perspective is correct and valid, but what you are saying is quite subjective in regard to the job market and becoming an independent developer (as in your title), it could be misleading for some. Knowing a wide breadth about web development is beneficial, but it is not essential to offer your services to clients, many developers hone in a specific front-end set of skills, and their career can be based on these skills alone. You can focus on being more of a specialist, or more of a generalist. As a freelance developer, you may consult or build a portion of a product, you may never build websites or application alone, so getting domain names and SSL certs are never part of the job description! A good example is Sara Soueidan who focuses on HTML and CSS with strong emphasis on accessibility and following web standards. Continuous learning is a given, but there are different directions and focal points that you can choose as a dev

Collapse
fayaz profile image
Fayaz Ahmed Author

I dont understand what's misleading. Everything int the post is about becoming a specialist in frontend field. I have mentioned things which will make you a better frontend developer. I never said learn everything, the things I have mentioed are related to just 1 thing, web developement, all I am trying to say is, there's more to web development than just coding.

The only thing mentioned anything apart from frontend is "learn how backend and databases" work.

I follow Sara, and I believe she knows these things as well.

Collapse
robole profile image
Rob OLeary

You did not understood me then! The article title is an emphatic statement. I merely said that your article could be misleading for some people, a beginner could think that learning the points you mentioned in your article are important for work opportunities for a front-end developer. That's what I thought initially when I went through the article. What you were trying to get at more, I guess, is that you didn't learn how to deploy your work, and some extra bits on how to build web applications completely, and that is a goal for you. Frontend is a big field, there are many roles within it, for others that may not important for them, or for their job prospects.

Collapse
kurgeye profile image
Kani

Great post. I see I've been introduced to most if not all through either uni projects or projects in my free time but I only know them at an introductory level at best. I definitely need to learn these things to confidently go from an idea to actually putting out there like you mentioned. A question for you if thats okay. When you look back after you first learned HTML, CSS and Javascript. Did you proceed to learn one of React/Vue/Angular or Node + MongoDB?

Collapse
fayaz profile image
Fayaz Ahmed Author

Interesting question. Actually during my first job, I was writing jquery making landing pages, building internal tools etc.

Later was assigned to build a appointment booking tool for our customers, it was easy at first and I made it with jquery. After a few months, due to constant updates and critherias in that tool, the code became a mess, completely unmaintainable, even I was not sure why I had did it that way. There were around ~3500 lines in just one file, which is huge, I guess I did not refactor it properly.

So we finally decided to move to React or Vue, I chose vue for some reason and it was one of the best descisions.

So you can say choosing/learning a framework came out of necessity and to solve a problem.

Collapse
fasani profile image
Michael Fasani

I think if you have some HTML,CSS,JS then perhaps some backend + database would be a good next move. You don’t have to master them but you could do a small full stack project. When you are done you can then refactor the frontend to use React or Vue.

Collapse
kurgeye profile image
Kani

That's a great idea. Thanks for the tip, i'm looking into having such a project on my portfolio.

Collapse
rwoodnz profile image
Richard Wood

Great article. I work as an independent remote developer and sorry, I can't agree with a lot of this.

My view:

There is no need to go anywhere near PHP (WordPress). Run away from such work if you can.
Windows is essential and all that is needed for most .Net developers. And that is a great job market.

Most of the rest of the list is part of a much bigger picture where there are alternatives that could just as easily be being used in your next job. So best to pick up what you need when you need it. You only have so much time - better to learn on the job as then you are being paid to learn, not trying to second guess what you need from a huge menu of possibilities at your own time cost.

Also don't spend your own time learning stuff you aren't interested in. You'll only end up in jobs you don't enjoy. This is exemplified by the "DevOps" trap. DevOps was a trend that seemed to make a developer more valuable and versatile. What it actually leads to is doing less development and more ops. Ask yourself if that is what you really want.

In your spare time for your own projects, start with what you want to achieve. If you want to learn functional programming, go and learn Elm. If you want to do maps, go learn Mapbox. If you really love the command line then go and learn Bash to your heart's content. Just completing your own web project will expose you to server deployment, but don't fret that you didn't use AWS. Yes you will get people who wont hire you without specific AWS experience. But who would want to work for such a wanker.

Collapse
crimsonknight profile image
crimson-knight

Overall this is a great post, and yes knowing more about the bigger picture when doing front-end dev work can be very nice. It also fills in some of the mystery as far as how things are really working.

Couple of corrections: TXT records are not assigning your domain to a host, they are for outside resources, usually to confirm your domains ownership. Like for SEO, you can confirm your ownership of a domain with Google’s search console using a DNS TXT record—among other verification options. Otherwise, you’ll always be using A-records and CNAME records, and primarily A-records when hosting through a VPS.

SSL is certainly not “forced” unless you’ve got a text input on your site. Static sites for portfolios would be fine without SSL and won’t trigger the warning.

But, hey welcome to the world known as “devops”! It’s a frustratingly poorly documented and overly complex section of the development world that sadly isn’t usually taught as part of the typical path pf web development.

As a 12 year veteran of IT infrastructure, I would always recommend learning this portion after becoming comfortable with whatever regular development language/process you will use for your career. It’s helpful knowledge, but not required knowledge.

So on your infrastructure learning path, have you done anything to learn about load balancers, proxy protocols and how they effect things like the request and session headers? Or have you learned anything about the different methods for creating an app cluster vs a single node? It’s the logical next step, and absolutely excellent knowledge for when you’re freelancing and have a client with a site that’s growing to a respectable demand size.

Collapse
fayaz profile image
Fayaz Ahmed Author

Yes, agreed the TXT record mention was contextual. I will correct

Collapse
crimsonknight profile image
crimson-knight

Glad I could help.

Do you need any good resources on learning more about infrastructure? I’m happy to help and I’ve been looking for topics to help jr devs get more comfortable with DevOps.

Thread Thread
fayaz profile image
Fayaz Ahmed Author

Thank you, I'll be in touch.

Collapse
detzam profile image
webstuff

I think we re going in a wrong direction, i mean.. from my point of viee, if you re role is a developer you need to know just points 3 and 4.
Points 1 and 2 and 5 are for sys admins, the people that take care of the servers. I shouldn't know how to do them because thsts why you pay money to your hosting.
Also, point 7.. that you shouldn't care, its just a platform, its as you should say codeigniter, symfony, yii, prestashop, drupal, magento, it doesn't matter, you work on it/woth it.
Point 8. Thats a different department, you , as a developer don't need to know it, you just make the changes that this department asks.
Thats my opinion. We shouldn't go for.. i m good at everything but o didn't master anything. Let the different departments do those jobs.

Collapse
fayaz profile image
Fayaz Ahmed Author

Sure man, if that's convenient for you.

Collapse
detzam profile image
webstuff

You need to first specialize on a technology, then you add new skills

Collapse
joeattardi profile image
Joe Attardi

WordPress? Come on.

Collapse
fayaz profile image
Fayaz Ahmed Author

You'll be surprised how many people use it.

Collapse
moadgeek profile image
Moad Ghazi

Excelent post !
You know when it comes to startups, the programming is the easiest part and it's only (20%) of the product, the rest 80% is for the marketing. Acquiring digital marketing skillsets is very important nowadays, and you can't learn it by reading, you only learn it by applying and getting experience.

Collapse
phantas0s profile image
Matthieu Cneude

That's a good article.

That being said, I would not recommend beginner to learn all of that at once. Begin slowly, step by step, and try to make your programs work first, before thinking of changing OS, for example.

Collapse
fayaz profile image
Fayaz Ahmed Author

Yes, not recommending to take in everything at once, just something that might come up when making and delivering from scratch.

Collapse
iwpgeek profile image
Mohammed Imtiyaz

Hey Fayaz, Great Post!

Since I have started following you I'm liking your posts and your thoughts.

Great work man. May God bless you.

P.S: There's a little typo error near end of the post "beands".

Collapse
fayaz profile image
Fayaz Ahmed Author

Thank you!

Fixed the typo!

Collapse
quenquenpotter profile image
Quen-Quen

Great writing, agree with it. These days, is important and a need to be engaged with more than your primary skills. No need to go expert mode, but a good knowledge will help on your success.

Collapse
jherzeybruhl profile image
Erl

Should i learn design too if i want to freelance?

Collapse
fayaz profile image
Fayaz Ahmed Author

Not necessarily, a lot of clients provide design when giving work, but I feel you should know design too, atleast the basics, learn figma.

Collapse
jherzeybruhl profile image
Erl

Ohk. Thanks

Collapse
alijcode profile image
alijcode

Your cover images are very good, and it is a very good post.

Collapse
fayaz profile image
Collapse
patarapolw profile image
Pacharapol Withayasakpunt

What is the best editable CMS for the clients?

Collapse
fayaz profile image
Fayaz Ahmed Author

If something cheap and barebones CMS, I suggest Netlify CMS, something more feature rich then Contentful.

A complete CMS eith media management. SEO, taxonomies then go for Wordpress

Collapse
pratyushsawan profile image
PratyushSawan

Very Helpful Blog.

Collapse
luismartinezs profile image
Luis Martinez Suarez

This post is actually pretty good. I think it is quite complete. I'll keep it as reference.

Collapse
huiren profile image
Tony

I totally agree about this when i just started my own static site and someone needed a database. It opens up myself to more things to consider

Collapse
fayaz profile image
Fayaz Ahmed Author

Exactly, I have wasted countless hours and going through so many articles to figure out some things that I wasn't even sure were to be done in a specific way or even existed.

Courses teach us what to make but don't tell you what to do with them or how to use them in real life scenarios.

Collapse
dansimiyu profile image
dan-simiyu

Good read man

Collapse
chekoyy profile image
Collapse
kazamario profile image
SuperMario

How do you feel about the WSL2 implementation in W10? Have you given it a spin?

Collapse
jakeerc profile image
Jakeer

Salamalaikum
Jazakallah khair

Collapse
thezeroine profile image
Zeroth

Is there a resource that you can recommend with learning about SEO?

Collapse
elvisiraguha profile image
Elvis Iraguha

This blog might be a good start: moz.com/beginners-guide-to-seo

Collapse
jackpatrick profile image
Jack Patrick

Great post,