How can I get started in Web Design?

Discussion in 'Computer Programming, Emulation, and Game Modding' started by Sop, May 28, 2013.

  1. Sop
    OP

    Sop groovy dude lmao

    Banned
    1,244
    207
    Nov 14, 2010
    qld
    I know some basic Web Design already (HTML + CSS and Graphics Editing) but I would like to learn more such as PHP and managing security and databases etc. My goal is to create a website/blog for a local club where you it's integrated with social networking and you can buy merchandise and other things on there.
     
  2. LiamGore

    LiamGore defenceplox

    Newcomer
    51
    21
    Apr 8, 2012
    for the databases your going to want to learn MySQL. plenty of tutorials for that. make sure your domain supports it. i learnt how to do stuff with trial and error to be honest.
    www.snortingdogs.com
    the gig list is done by a database.
     
  3. fvig2001

    fvig2001 Advanced Member

    Newcomer
    70
    11
    Aug 21, 2006
    Let's see, from my experience and your experience you would need to study the following in order:
    1. Javascript - For some scripting needs that can't be done by css and PHP (or too much or work through PHP like pop-up dialogs)
    2. Basic SQL (Create table, select table): database creation, getting data, setting data and the like
    3. Webserver (download apache since it's the strictest in syntax)
    4. PHP
    5. Learn to integrate PHP with database + webserver.
    6. Cookies and sessions (to retain log-in information)
    7. For security, check SSL for PHP

    I'm sure PHP will do well for this task since I used JSP, which was sort of slow.
     
  4. fvig2001

    fvig2001 Advanced Member

    Newcomer
    70
    11
    Aug 21, 2006
    <oops double post>
     
  5. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,364
    9,167
    Nov 21, 2005
    I know I already went but most of coding these days is smashing things together.

    To that end learn by doing
    http://www.uniformserver.com/ or set up a VM and play.
    http://drupal.org/ http://www.joomla.org/ http://wordpress.org/download/
    http://www.drupalcommerce.org/ http://extensions.joomla.org/extensions/e-commerce http://wordpress.org/plugins/tags/e-commerce
    Again though I do suggest just setting up a shop on an existing site (amazon, ebay, cafepress...). On the flip side I do not suggest coding your own site from scratch and if you do then absolutely do not put it into production.
    There should be plugins for all of this but things like http://www.addthis.com/ exist otherwise.

    I quite liked http://www.apress.com/9781590599433 for SQL. http://qntm.org/gay was also quite interesting as a thought exercise.

    PHP is a nightmare whichever way you spin it and I would suggest learning a regular/well made programming language first.

    Security is a field almost unto itself and database design is not far behind. You can get by without going too far into databases though (though if you plan on doing this take and keep regular backups). You can study security forever and do well but you can also do things like adopt best practices (sanitise your inputs, do lots of checks on incoming data, make sure you store passwords correctly*), isolate components from each other (separate logins annoy some people but hey) and maybe add on a few early warning systems and get most of the way there though.

    *this is to say proper hash and unique "random" salt per user.

    The true test tends to come when you get to clear up somebody else's mess or have to maintain your own across several years but I suppose you have to start somewhere.
     
  6. Aeter

    Aeter A walking contradiction

    Member
    937
    151
    Apr 1, 2009
    Netherlands
    The lands of nether
    I think you should try out python, because like our Techromancer pointed out, PHP is a mess and a beginning programmer can get lost very easily.
    Python's an easy to learn programming language which can be used for webdesign using PSP's (Python Server Pages), just like you have JSP's for Java and such
    But for PSP's you do need knowledge of mod_python, which is an Apache module that embeds the Python interpreter within the server, but that's for later when you learn at least the basics of Python.

    I suggest you start here: http://wiki.python.org/moin/BeginnersGuide
    You might also want to check out ActivePython, mainly because of the ease of installing modules/packages with the PyPM (Python Package Manager).
     
  7. Sop
    OP

    Sop groovy dude lmao

    Banned
    1,244
    207
    Nov 14, 2010
    qld
    I'm not a beginner programmer, just a beginner web programmer :P The hardest thing I had to learn was the Windows API in C++.

    What are Server Pages? And I will take a look at that module.
     
  8. Aeter

    Aeter A walking contradiction

    Member
    937
    151
    Apr 1, 2009
    Netherlands
    The lands of nether
    Server Pages are HTML pages with code in them, like PHP/PSP/JSP pages.
    They get interpreted on the server side (Apache) and are converted to full HTML, to generate dynamic web pages.
    This way you can use Python/PHP code to make a website dynamic.
    Mod_python is a module where PSP's are implemented, i.e. you need mod_python to make PSP's.
    Here's the documentation for mod_python: http://www.modpython.org/live/current/doc-html/

    I still think you should go with Python though, even I would rather start with Python than PHP and I've programmed in both.
     
  9. Sop
    OP

    Sop groovy dude lmao

    Banned
    1,244
    207
    Nov 14, 2010
    qld
    I know Python pretty well as it was my first programming language. But what I'm looking for isn't just names of languages (well, i thought it was) but tutorials that gradually teach you web programming languages and how to use them together to create effective webpages.
     
  10. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,364
    9,167
    Nov 21, 2005
    Effectively create pages is as much page layout and such like as it is programming ( http://www.webpagesthatsuck.com/ ). Also when you say HTML and CSS do you understand the idea of the DOM (document object model) as that becomes pretty important where basic HTML usually amounts to making sure you close all the divs and other tags you use and trying to kick things to CSS/not use deprecated tags/concepts.

    PHP, mysql and javascript with the CGI stuff running a distant fourth are where most things get done nowadays. Of course configuring your server and messing around with .htaccess files also counts and a lot can be done with those .htaccess files.

    You can do an awful lot with just php, however doing as such these days is typically not seen as a great thing and even with just php it tends to sit alongside SQLite or something like that.

    The progression most people take in PHP -- "so I do not have to iframes/complex templates any more" aka php include (truly a very useful thing -- much like when you learned about external style sheets this is for actual site building), ooh I can email someone from my site (aka I do not have to just copy a mail form from somewhere, though I still suggest that) and ooh I can speak to my database. From there it is typically figuring out what level of database command you want to build with php or what level of command you want to kick into the SQL itself (always the fun when dealing with two programming languages that are interacting with each other). Personally the basic maths (which is a lot of what most sites do) probably wants to go to PHP, arrays are a tough call and anything beyond that probably wants to be in SQL.

    Javascript... personally I hate it and find it does precious little for me. Of course I also run noscript in paranoid mode and few seem to code their site to work remotely well without it and with most uses being nothing special at all and/or quite easily catered for in better ways it only furthers that opinion. Still it does lead to things like ajax, it can make for nice transitions, it does allow for simple client side coding*, it is a more complete language than PHP in certain regards (php is a full language but compared to a lot of programming is it in no way suitable for general use**) and it works pretty well.

    *going back to security this is just as bad for some people. The short version is never ever trust anything remotely to do with security to client side javascript. The big two seem to be playing with passwords and vetting/sanitising data, I have seen both before and it is not pretty when it goes wrong (you are putting your security in the hands of the people that are attacking you).

    **you might have a python runtime, you might have a perl runtime, you almost certainly have .net if you are on windows, you might have java, you might have visual basic runtimes, javascript is baked into your browser and so forth. You will almost certainly not have a php interpreter unless it comes as part of a website oriented package (why I linked http://www.uniformserver.com/ earlier).

    SQL.... some have tried to make a gentle introduction. This just leads to lousy database design and worse security in my opinion. Learn SQL by itself (I already mentioned my chosen book on the matter, others have mentioned theirs) and then when you try to get PHP to talk to it then it will be far less painful and you can see bad practices coming. In the meantime do read up on SQL injection attacks as they are the primary screwup and usually caused by people allowing PHP to run commands that the original site coder did not intend.
     
  11. Aeter

    Aeter A walking contradiction

    Member
    937
    151
    Apr 1, 2009
    Netherlands
    The lands of nether
    I didn't just give you names, I also told you about mod_python and linked to the documentation of it, which also contains tutorials and everything you need to learn it.
    It all depends on what you really want to get a website to do, a lot of things can be done with mod_python that can also be done in PHP, like connecting to databases and CRUD (create, read, update and delete) tables.
    You might also need AJAX, depending on what your wishes are, but you are just too vague about what you really want, if you ask me, and I'm just trying to help you, not hinder you.

    As for the databases that requires learning SQL, which has many forms, but the one mostly used by non-commercial companies is MySQL, and is generally thought at every IT education that includes learning databases.

    If you want to learn how to create proper databases, you not only need to learn the language but also the modeling of databases.
    Modeling a database requires using ERDs, which are entity-relation diagrams, which is are the blue prints of your database.
    You can compare it to a UML Class Diagram, but for databases, hoping you've also learned UML, since you do seem to know OO (Object-Oriented) Programming languages.

    A nice little program that let's you make these ERDs for MySQL databases is MySQL Workbench.
    You can find it here: http://www.mysql.com/products/workbench/

    For learning MySQL there are a lot of books perhaps even free books, but I can't help you with that since the books that I used where Dutch and can't form an opinion on books that I'm not familiar with, so for that you might want to do a little research yourself.

    For managing MySQL databases you can use a tool called phpmyadmin, which you can find in a lot of home server programs like XXAMP, which I recommend you use for testing in dynamic programming so you can run an Apache server from localhost, unless you already have a server ready with Apache and mod_python on it.
    You can find XXAMP here: http://www.apachefriends.org/en/xampp.html
    Here you can find out how to install mod_python on XXAMP: http://blog.chomperstomp.com/installing-python-mod_python-on-xampp/

    I hope any of this is useful to you.