TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Need help creating website from scratch

3 pointsby jhacksover 13 years ago
Hi all.<p>I'm looking to learn to develop from scratch. I know html, css, and some php. I understand the basis concepts of web development, but I want to really gain a better understanding of things from the ground up. And learn to do it right.<p>So, I want to learn how to best approach file structure, front-end/back-end coding (including language vs framework), etc. I'm even open to learning the hardware side of things (to a certain extent).<p>I'm just sick of the shortcuts and "user-friendly" approaches to creation. I feel more lost than if I were to learn the fundamentals. I never get the questions I actually want answered, answered.<p>Are there any good resources out there to learn this? Any and all help appreciated. Thanks.

5 comments

thetabyteover 13 years ago
I don't have time at the moment (I'm about to leave a train) for a detailed explanation, but what I can say:<p>Look into Ruby on Rails. I've started it recently, and it's brilliant for building and deploying a web application. It cuts out so many annoying steps. I recommend the Pragmatic Programmers Guide to Agile Web Development with Rails, but there are plenty of free resources too.<p>If I have time, I'll post more later! Hope this helps!
评论 #3261383 未加载
noahcover 13 years ago
First of all don't try to create a website from scratch. It's too much work.<p>I would suggest using something like twitter bootstrap to get started on the css if design isn't your strong point.<p>Next you need to learn how to program. Php is super easy to get started with, but it has a reputation for teaching people bad habits. You can use a framework like code igniter to get started.<p>Essentially, what you need to do is find a framework that is MVC in a language you want to learn and focus on that. Just make the pages work. Then you can come along later with bootstrap or a theme you've created and make it look pretty.<p>If you ever get stuck ask a question <a href="http://stackoverflow.com" rel="nofollow">http://stackoverflow.com</a>
mrpopularover 13 years ago
&#62; I'm just sick of the shortcuts and "user-friendly" approaches to creation. I feel more lost than if I were to learn the fundamentals. I never get the questions I actually want answered, answered.<p>Depending on who says it, that could mean anything. Can we have some examples? Lest we send you off on a wild-goose chase learning every last detail of some huge trendy framework, only to discover you were meaning something that takes 5 lines of PHP...
评论 #3262511 未加载
ryanfitzover 13 years ago
Browse around github for projects that involve whatever concept you want to learn. Study the source code and attempt to add new features or make some sort of change. As an example if you want to learn less/css look at twitter bootstrap, for javascript check out underscore.js
chetane07over 13 years ago
It seems your focus is not on productivity (e.g. build a good website, quickly) but rather working hard, from the basics in order to build a strong foundation for the future. Learning from the "ground up" is no easy task, so I would suggest a divide and conquer strategy rather than trying to attack all the problem at the same time. For that reason I'll split the learning in a few different buckets, that you can choose to attack whenever you feel ready for it. I think the methodology below works best if you have a simple project in mind to work through (But remain stay realistic/minimalistic for now).<p>1. Front-end layout: html/css<p>Here, think about the website layout you would like to have. Feel free to wander the web and get inspired by other design you like, and try to recreate them. At this point, you might need to brush up your Photoshop skills (for minor things). Look at css frameworks in terms of what they have to offer, and recreate it. (You can even look at their code to understand better).<p>I would highly recommend using Firebug at this stage, to inspect page elements and css properties for websites you visit. As far as html is concerned, learn about good practices, and standards (quickly, don't become a fanatic). Use w3c validator at the end and try to make it down to zero errors/warnings.<p>2. Front-end UX: javascript<p>While html/css focus on presentation, and creating a layout. Client-side Javascript will give life to it. Here I would suggest doing basic things like onclick events, DOM manipulation (e.g. create tabs, when you click on a link a div appears, the other one becomes hidden), changing css properties based on events and so on. You have a big important choice to make here however: To use jquery, or not.<p>jQuery will make things much much easier, because the truth is client side javascript is a big mess. Every browser handles events, dom, etc... differently. If you were to use pure javascript from scratch, you would need handle all those differences yourself in order for the site to work on all browsers. If you use jQuery, it's all taken care of. So it's your call how much time you want to spend here. Honestly, I think it's safe to use jQuery directly. Also, I would suggest reading the following book at this point: "Javascript, the good parts". Don't worry, it's a small, quick, and easy book to read.<p>NOTE: The following two steps above can be done on your computer locally, without the need of a server etc. But we are at a fork now, as you'll want to get your stuff online. If you want to learn about server now, read on. If you want to focus on back-end first, skip this step and come back to it afterwards.<p>3. Server stuff<p>The easiest way would be to get a hosting, and drop your files using ftp. But you asked for a harder way which teaches you the fundamentals. I would therefore suggest getting a VPS (Virtual Private Server), which is a machine somewhere online which belongs to you. On this 24/7 connected machine, you can install anything you want based on your needs. These are not free, but if you look at <a href="http://chunkhost.com/" rel="nofollow">http://chunkhost.com/</a> you can get one free month. Having a domain is useful as well, which is not free. But you can always reach your server using its IP if you prefer. You are familiar with php already, so go ahead and install apache/mysql on that server, along with an ftp for you to connect to it. How to learn about it? Slicehost has amazing documentation <a href="http://articles.slicehost.com/sitemap" rel="nofollow">http://articles.slicehost.com/sitemap</a>. I realize there are 'hotter' things out there than apache/mysql, but stick to the basics for now. After all, this will not teach you how to install "apache and mysql" on a machine, but really teach you how to get/setup/install anything on a VPS (nodejs, nginx, any other db). A word of warning here, this will involve very little programming, and might seem pretty tedious -- but it's good learning.<p>4. Backend: MVC<p>You already know php, and I suppose how to use mysql with it. So it's time to use the MVC pattern. There are many frameworks out there, but if you really want the core understanding of how it works, create your own MVC framework. There are a few tutorials that will walk you through it, and give you great understanding of model, view, controller, routing, etc... At some point, you might realize you're duplicating a lot of mysql code and queries are all over the place. You might want to create a simple abstraction layer that makes it easier to create your queries in php (rather than in SQL). Once you get those running and working, it should be an Eureka moment. You'll understand a world of opportunities opened up for creating more complex websites, in a simpler way. You'll also realise that there are so many cool things you could add to make the system "better". That's where Frameworks come in: Teams of strong people have spent time to precisely create that. If you want to stick with php, look into "CodeIgniter" which is a lightweight php mvc framework. It is so lightweight, that it might feel in many ways similar to what you created. Also read about ORM (Object Relational Mapping), by using "Doctrine" along with code igniter.<p>5. Next steps...<p>If you make it this far, congratulations :) The road won't be easy, and you'll have to dig all over the web to find answers. But it's through this search that you'll progress, so don't let it stop you (think of it as a sign you're doing things right). Now once you make it this far, there will be a lot more interesting topics to look into. But remember this lao tse quote: "A journey of a thousand miles begins with a single step" -- take your time, be patient, and learn one step at the time. Good luck, and I hope this post will be useful to you.
评论 #3263162 未加载