6 ms·
A friendly web development tutorial for complete beginners (2017)
- bibyte 7y agoPretty good website. But why Atom ? A plain text editor would work just as well and would be even easier. I am not sure I agree that developing for the web is hard. In fact because it is so easy JavaScript is so popular right now.
- gbugniot 7y agoJS is easy, JS ecosystem is not.
- bibyte 7y agoGood point. But I don't think a complete beginner would use complex JS frameworks.
- tonyedgecombe 7y agoThere are plenty of sharp edges in JavaScript to cut yourself on. For that reason I'd argue it isn't easy. Compare it to something like C# where you could start pushing out code on day one. It might not be pretty or the most efficient code but there won't be any surprises, it will do what you expect.
- gbugniot 7y agoYes of course, like in any other programming languages.
- gbuk2013 7y agoI would say JS is simple, but it’s not easy. :) I love the language - it is earning me a comfortable income and I am very productive in it, but it requires experience and iron code discipline not to let it bite you!
- foobarbecue 7y agoDon't you mean that it's easy, but not simple?
- gbuk2013 7y agoNo, otherwise I would have written it that way. ;)
- foobarbecue 7y agoWell, then I strongly disagree. Modern JS is very easy to write, but extremely complex because of all the leftover cruft. For example, a beginner can declare a varible with let, const, var or (what could be easier) nothing at all. The resulting scoping rules, however, are anything but simple.
- gbuk2013 7y agoI don't think it's complex at all. The scoping rules are very simple. Block scoping just added another piece. The difficulty is that there are many simple things like this to learn and to combine in a safe and maintainable manner for anything other than trivial programs. Out of the box, the language does nothing to discourage bad coding practices (some might say it even encourages them). It's the flip-side of being such an accessible language. It is possible write JS in a way that avoids a lot of the complexity, but it requires experience and discipline and some tooling, just to be sure. The code will look simple but it is not an easy thing to do.
- foobarbecue 7y agoProgramming is mostly the practice of reading code rather than writing, and this is where the complexity is felt.
- wruza 7y agoHtml and css are not hard; at least I’m aware of each topic listed at this site and either know it or know where the good reference is. The problem is that they are full of legacy, incompatibility, sometimes irrationality, they lack details and proper isolation. For one simple example, give body 100vw 100vh and gray, vue #app 100%. You have just a gray page, right? Pretty trivial. Okay, now add h1 into #app. Page suddenly gets a vertical scroll of ~10px and a white bar of the same height appears above body. Why? Because h1’s margin leaks through two parents up to the document’s top, document pushes body down that count of pixels, but retains its 100vh height. That’s completely absurd and entire html/css is drenched with this absurdness. You cannot find this behavior in layout systems of traditional desktop frameworks. And this one is just a trivial case leading to a problem. IRL a production-ready site is a tetris-inspired pack of properties set on :first/last-childs, 1-2px fixups for baselines, borders, etc that correspond to required design. Changing parts of it without messing up is so hard that css guys who I know always try to fix design at the beginning and cringe every time changes are made. They also try to apply rules only on specific divs and clear it for childs, trying to isolate effects. And then I read “CSS is Awesome” in yet another popular blog post and something dies in me at that moment. I look forward on things like gss, manual positioning via js, etc. But then comes seo and tells that he requires wordpress and semantic cr%p and that google will not give a damn about pages built my way. /rant
- cameronbrown 7y agoDidn't you just prove CSS was hard?
- manbearpiggy 7y agoThis is great, it's more than a tutorial, more a comprehensive guide.
- mseidl 7y agoI wish I was a good html programmer...
- pjmlp 7y agoBeautiful content. Thanks for sharing.
- temporaryvector 7y agoThis is a very well done and pretty comprehensive tutorial. However, there are plenty of pretty good basic web development tutorials out there, and few, if any of them address what I think is crucial. Once you have all your HTML and CSS and JavaScript all ready to go, how do you actually got about putting that webpage online the right way for the modern internet, including basic security best practices. As the website name says "interneting is hard," but I think the hardest part for an absolute beginner isn't throwing some HTML but actually getting it online. Googling around will present one with a lot of choices and advice for what to do, at various levels of complexity and it's not at all clear what applies to their particular case. Questions that often need answers are things like: - What's a domain and how to get one? - What kind of hosting solutions are there and how do I decide which is right for me? - How do I point my domain to my server? - What's a certificate, do I need one and how do I set one up? - How do I make sure I don't get hacked by a script kiddie? For an absolute beginner web developer, learning HTML and CSS is pretty accessible, they can write, test and iterate on their machine and they can pretty much figure what questions to ask of google and quickly see if the answer works, but when it comes to actually hosting their site, it can be hard to even know what kind of questions to google, much less how to choose the correct answer. If someone were to ask me to recommend then a tutorial for making a website, I'd probably link to this or one of the other similar tutorials online, but at this point I'm not sure if there's a similar authoritative, modern "How to get your website online" tutorial, although I admit I haven't looked all that hard.
- varrock 7y agoThis is the crux to my imposter syndrome. Luckily, I work with people that specialize in this, but it limits my personal growth quite a bit. I really need to figure this portion out.
- tiborsaas 7y agoIf you refer to releasing stuff, then try Netlify to publish a HTML document and static assets online. They made it so simple that you can just drag and drop content from your desktop to the browser and it takes care of the rest.
- ktpsns 7y agoI'm not a native speaker and maybe overstress my understanding of "being hard", but CSS and especially HTML are famous for their simplicity. One can start basic markupped text with a basic text editor in minutes. Of course any advanced features require some learning. But I don't like people calling basic web publishing technologies (which are decades old) to be "hard". Because they are designed to be simple and that's one reason of their huge success.
- themarkn 7y agoThe basics are not what make them hard. But they are vast in how they can be used and combined to achieve various results. Writing semantically correct, accessible, maintainable markup and CSS is websites that often have thousands of elements on a page (a separate problem, but true), made up of components authored in a CMS with who-knows-what nesting ... etc etc it’s hard. CSS favors conciseness over explicitness, so there are many properties that look like they do one thing but actually do another. That’s hard too, you have to learn not to assume the obvious interpretation of a property name is the correct one. What often happens is developers duct tape complicated user interfaces together using the basics (because CSS and HTML are considered “easy”) and end up painting themselves into a corner where it’s increasing difficult to manage the code and assistive technology has no idea what’s going on. For me, letting new developers know that good HTML and CSS is hard helps them to respect the huge surface area involved and be patient with themselves when they struggle. Telling people those things are “easy” makes them feel stupid when they can’t get something working right away. I guess you cover this by saying advanced features require some learning - but I feel like people hit the hard part of CSS very early on when trying to implement basic patterns that are on most websites.
- simion314 7y agoCSS/Html has a lot of tricky corners, where you spend 1 hour to understand why things are not as you expect. My latest issue was with a webpage that when I print it to PDf the tables font was different, the cause was that for some reason the browsers rendered that page in quirks mode(I could not figureout why since I had the correct header) but not when printing to pdf. In quirks mode the tables font styles except the font family are not cascading from the parent, I did not knew that. In other case I remember I had to add a min-width:0 to a rule because the layout engine has a large number of paths it can take and adding that rule would push it in the correct path. The current project I work was not started by me so please don't say I should have used X, I can't now just put a reset css in the project, it could break 100 things all over the place. Other issue I hit sometimes is aligning checkboxes,radio buttons and labels in all browsers, I get asked to pixel perfect align them, the bootstrap css we use does not do it, so we have to add rules with padding, min-heights and other things to get the result done , I use flexbox for the new layouts I create but working with old css that uses float,possition:relative is a pain for me. I have a solution, have an html6 css4 thing , that is not backward compatible, make it so if you do a stupid thing like have 2 elements with the same ID the page won't render,drop html elements that we do not need. drop all old css crap, like float should work only for floating text and images not for layout, have only 1 way to layout things, 1 way to center things, 1 way to put gap between children... at least the lucky ones that start from zero can have less problems . We still keep the old html5 for compatibility reasons.
- lpellis 7y agoThis looks pretty good. I had a lot of people tell me they get stuck following most basic tutorials since they all assume some level of basic knowledge that you forget you even have if you work in the field (stuff like 'where to put these files', or even that you can view your file in a browser by doubleclicking it). I even wrote a very basic getting started guide myself (https://medium.com/@lpellis/getting-started-with-web-development-85a742e09c84 https://medium.com/@lpellis/getting-started-with-web-develop...), but now I can rather send people to this guide :)
- linuxftw 7y agoYes, we used to call these 'basic computer skills' but many people don't have them. Do you think you could buy a car that needed new piston rings and replace them successfully if you've only ever driven a car? Someone can give you the manual, but you'll be like "What's a torque wrench?" Why should PCs be any different?
- konz 7y ago2017 Discussion: https://news.ycombinator.com/item?id=13634363 https://news.ycombinator.com/item?id=13634363
- dang 7y ago2018 too: https://news.ycombinator.com/item?id=17415270 https://news.ycombinator.com/item?id=17415270
- mushufasa 7y agoMy favorite tutorial of all time: https://tutorial.djangogirls.org/en/ https://tutorial.djangogirls.org/en/
- freakynit 7y agoHats off to you for putting up with such brilliancy and simplicity in explanation
- Stevvo 7y agoI'd take out the floats section and replace it with grid; floats are completely obselete
- asciimo 7y agoTrue, but as soon as you get a job involving any legacy HTML, you'll have to wrestle with them.
- terrycody 7y agothis is really really newbie friendly and useful, thank you for your contribution to all of us!