Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Best way to start making a website?

  1. Mar 13, 2014 #1
    I already know java and my fair bit in tech, had some experience building a website in an into course once.

    But I want to learn the professional way to build a website. What is the way to build a website that is fast but also not lacking and has all the possibilities?
  2. jcsd
  3. Mar 13, 2014 #2
    You learn the professional ways, by working on sites over the years. You need experience. A person does not become a master without experience. So, read up on design and programming principles, learn the languages and then start creating. It must be a hobby before a profession imo.
  4. Mar 13, 2014 #3
    And that's what I am aiming at, self teaching, I just don't know the platforms or where to start.
  5. Mar 13, 2014 #4


    User Avatar

    Staff: Mentor

    Define "professional way of building a website".

    Do you want to start with your own server, or with a hosting site? Do you want something that has good looks, or something that is fast? (Not that these are exclusive). Do you want something based on a ready CMS, or do you want to code one by yourself? There are so many answers to your question as there are web developers.
  6. Mar 13, 2014 #5
    What specifically are you stuck on? Have you read through an HTML book?
  7. Mar 13, 2014 #6

    jim mcnamara

    User Avatar

    Staff: Mentor

    Maybe jarfi could start with WordPress? This is a sort of do it yourself site editing/building deal.

    Download from here: https://wordpress.org/download/
  8. Mar 13, 2014 #7
    Not sure if I should start with HTML or XHTML, I'm not stuck no. Figuring where the best spot to jump in the deep pool is.
  9. Mar 13, 2014 #8
    HTML5 is the future. Learn CSS3 too.
  10. Mar 13, 2014 #9


    User Avatar
    Gold Member
    2016 Award

    I agree w/ Greg. Learn HTML (and use the HTML5 protocol, not earlier) and when you've gotten just a bit familiar with that, start to bring in CSS

    If you start with one of those "do it all for you" tools, you won't have any idea what to do when things to wrong because the underlying markups will mean nothing to you.
  11. Mar 14, 2014 #10


    User Avatar

    Staff: Mentor

    Assume the only tool you need is a text editor, perhaps with a syntax highlighting. No fancy HTML editors, as they will just hide the real thing from you.
  12. Mar 14, 2014 #11


    User Avatar
    Gold Member

    I recommend Notepad++
  13. Mar 14, 2014 #12


    User Avatar

    Staff: Mentor

    I have not mentioned any specific program as it I have no idea what OS Jarfi uses. But yes, under Windows Notepad++ is a very good solution.
  14. Mar 16, 2014 #13
    It depends whether you want to build a static website or a dynamic website (with a database behind it). A static website only requires HTML/CSS and perhaps some JavaScript if you want to make it a bit fancy/flashy.

    If you are building a dynamic website that has lots of content sitting in a database (like this forum, or a blog maybe, or a news site, or whatever), then you probably want to use a server side programming language and handle HTTP requests dynamically.

    For that, you can use pretty much any language, but maybe start with one you are familiar with (Python? Java? PHP?). There are many frameworks out there for any given language that will make this easier for you, but you probably need to make a few decisions yourself with regards to what you want to pursue.

    Edit: you mention you know Java. Why not have a look at Java servlets? A servlet handles a HTTP request, does some decision making perhaps, builds a web page based on that and sends it back in a HTTP response. You might also look at JSP and JSTL.
    Last edited: Mar 16, 2014
  15. Mar 16, 2014 #14

    Would you say using java and java servlets classes has more possibilities then HTML5 and CSS for "flashy" web designs that will also store data?
  16. Mar 22, 2014 #15
    Java and servlets in general are quite separate from HTML and CSS. They serve up HTML and CSS to a requesting client. So you can make your front end, in HTML and CSS, however you want.

    Where servlets come in handy, is when you want to process a request differently each time.So if you have a page where you want to display 'the 5 newest forum' posts, you might use a servlet. The client navigates to www.yourwebsite.com/the5newestpostspage, your servlet is mapped to this address so the client is actually hitting your servlet when they navigate to it. Your servlet hits the database with a query like 'SELECT * FROM posts ORDER BY id DESC LIMIT 5' (i.e give me the top 5 results when I sort posts by id in descending order), and then processes the query results and generates a HTML page and then sends this HTML in a response to the client.

    This is how most dynamic web pages are dynamic. HTML doesn't know anything about databases. It's just a document markup language. CSS is just a styling language. You need a proper programming language to do your data processing.

    So if by 'flashy' you just mean what it looks like, then no, you don't need Java (or any other serve side programming language), but if you want dynamic data and perhaps a lot of processing of that data, then yes, you want Java (or any other server side programming language) to handle that.

    You can store data client side with HTML5 (kind of like you can store data in a cookie on the client) but this is kind of different. You might store user preferences in a HTML5 datastore (for example, this client wants the 'blue' theme, and the 'xxx' widget and their timezone is 'some timezone') but you don't store forum posts client side, you store them in a database on your web server and you make a website with Java, or PHP, or whatever to serve HTML to a client.
  17. Mar 27, 2014 #16


    User Avatar
    Gold Member

    This small book is the best of many for learning about web coding and its tangled history: http://www.abookapart.com/products/html5-for-web-designers This book clarifies the different HTML standards, and does a great job of it. The book is only 85 pages, and is succinct and efficient and communicating about web development, which is a more complicated matter than it seems at first.

    For some reason, they won't sell it on Amazon so you have to order it directly from the publisher. There is a companion book for CSS3 from the same publisher, also quite good.

    The other big decision you have to make is whether to host your website on a Linux server or a Windows server. There are annoying differences in the two platforms, such as how permissions are determined and whether the filenames are case sensitive (on Linus they are, on Windows not). I am rare in that I have used both platforms about equally, although I prefer Windows because I really like the Microsoft development tools (free) these days, and I find it less work overall that on Linux, where I sometimes have to set permissions on each file individually. However, either works equally well; as a beginner, pick one and stick with it for awhile until you've learned HTML5 and CSS3 thoroughly.

    I would advise against learning scripting languages such as Javascript, or server-side languages, initially. It will be too much. First learn to make a decent, static page using HTML5 and CSS3 that is standards-based and works well in all browsers. Then you can branch out into using programming languages if you are feeling up to it.

    Also, you will need a good FTP client to transfer files up to your website. I use FileZilla, which is free and very good. It works equally well with either Linux or Windows.

    Try to learn to provide an HTML standards declaration on all your web pages, and also a character encoding. If you don't learn about these things, simple web pages will work anyway, but someday if you have content that includes, say, non-English names or spellings, you may find that unless your page has adhered to standards, the page won't display correctly for some users.

    Good luck!
    Last edited: Mar 27, 2014
  18. May 5, 2014 #17
    You say you have experiance with java? I reccommend building the webserver yourself (it's not more than 1500 lines) and then using notepad++ for HTML, HTML5, CSS and Javascript. This gives you a high level of control and doing everything server side makes your site extremely secure. I find it easier to use a language like java to do the webserver because the database management is more effiecnt aswell.But thats just me and everyone I know ;)
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook