Results 1 to 20 of 20

Web Development: Where to start?

  1. #1
    Member Fenra's Avatar
    Join Date
    Apr 2011
    Location
    US East

    Web Development: Where to start?

    I'm posting this here instead of the Workshop since I felt it was mostly for computer troubleshooting, which I have none

    I wanted to say this forum is probably one of the more well-designed I've ever been too, while that's not much worth, I was wondering, where does one specifically learn how to "really" get into the meat of web development. I wanted to offer people "free development services" at least in terms of HMTL/CSS-like stuff, I have Expression Studio under a student lisence, and I wanted to eventually look into doing it as a second income option someday. I know I probably will need to know how to design, or find someone who can do graphics. However, where does one find work in the field for free for non-profit/community sites?

  2. #2
    Is watching TheDeadlyShoe's Avatar
    Join Date
    Sep 2003
    Location
    Left Coast
    The real question here is what you want to do. Do you want to create websites for other people? Are you looking to do technical stuff? Do you want to offer specific services? Do you want to work for or create a service that does any of those things?

    Creating a website is so relatively easy these days that 'webmastering' is (though not defunct) falling out of favor compared to 'hosting solutions' (i think of them as build-a-bear workshop setups).

    The irony here is that selling web services to other businesses requires that you yourself either start or join a web business. Or work through a portal - there's several websites around that center around the sale of expertise.
    Remember: you're a blogger. Pretense is your co-pilot.

  3. #3
    Member Fenra's Avatar
    Join Date
    Apr 2011
    Location
    US East
    Probably work around a eventual business setting (I plan to Major in Business Information Systems, aka a blended mix of business and comp sci with an emphasis on databases) but for now just learning where to find such opportunities to gain experience in the field as a web designer/developer. I like to think I have a pretty decent knowledge of CSS, and HTML is kinda sticking for me now after a few examples. I'm not saying I'm an expert or have extensive knowledge of anything, but I have trouble working on example sites when I feel they serve no definitive purpose. I'd like to eventually design a site for someone, and as I gain skills, add to the site with newer and more intuitive design ideas (within the scope of the clients needs, of course).

  4. General Discussions Senior Member  #4
    Senior Member roflmao's Avatar
    Join Date
    Feb 2007
    Location
    Veracruz, Mexico.
    How much experience do you have with programming in general? Do you know the core concepts of programming such as conditional statements, functions, for loops, objects, and variables? Or is this all completely foreign to you?

    If you've had no exposure at all to programming, start with either Java or C++ (but you won't do web with C++).

    If you don't have basic programming concepts, you want to start with a good OOP language that's going to teach you good coding practices and techniques. Do not start with PHP like most people do. PHP is broken by design. Yes, it is the language that most of the web uses and will get you up and running the fastest, but if you learn proper programming you'll automatically know PHP. There's nothing to the language.

    Doing web based stuff in Java is, well, not quick. You're going to spend a lot of time learning the basics of what programming is before you even start creating anything, but it's the proper way to go.

    ===

    If you have experience with programming and know good OOP concepts, then I'd go with either PHP or Ruby [on Rails].

    PHP is the most popular language for web development, but as I said above, it's a repository of shitty coding practices so I'd only venture into it after being trained properly in the art of programming.

    Ruby on Rails is the new kid on the block, but it is without a doubt the fastest way to develop your average web app ever. On average, I spend literally 5x less time developing with Ruby on Rails than with PHP.

    The Rails community, while known for elitism, is a center of excellent programming practices and good design. Ruby combines functional with imperative and therefore is one of the most dynamic languages out there. It's different from your meat-and-potatoes C++, but in a very awesome way, and if you follow Rails you'll learn about test driven development, dry code, standard web design patterns, REST, and other goodies.


    So basically it boils down to two things:
    - How much programming do you already know?
    - Do you want to build websites for yourself or be a web programmer as a job?

    Java: Don't know any programming.
    Ruby: Know programming already, want to build websites for my own use (or start a consultancy).
    PHP: Know programming already, want to do web programming as a job.

  5. #5
    Member Fenra's Avatar
    Join Date
    Apr 2011
    Location
    US East
    On a level of competency with programming (not sure how that's relevant to HTML/CSS... but okay) I know Conditional Statements, functions, loops, etc... Basically all the very basic programming stuff you'd learn in a first class. I would like to take on web development right now as a hobby, and eventually as a backup job should everything I know about BIS could fail. I would like to build websites right now "for myself" as a pro-bono thing to community people, non-profits, etc.. (as in, resume volunteery-like-stuff). I'd like to pickup PHP, but I wasn't sure if I should learn Java (I know zlich about it) or pickup PHP for the sake of popularity. Looking right now to build websites for people at no cost, and preferably with no upkeep (aka, finding ad-based hosting for free so people don't have to pay for website work that I do for upkeep).

  6. General Discussions Senior Member  #6
    Senior Member roflmao's Avatar
    Join Date
    Feb 2007
    Location
    Veracruz, Mexico.
    Well it sounds like your best fit is PHP to be honest, as much as it pains me to say it.

    If you do go that route, just keep yourself connected to the hivemind. Contribute to prominent open source projects, explore how the most popular frameworks are built, read the blogs of prominent developers, look for new ways to learn best practices. Put thedailywtf.com on your RSS feed and the day you start wanting to kill yourself over those examples is the day you know you're doing things right.

    But just for the record, language wars is like politics, developers have their personal preferences and I'm just expressing my opinion. You should ask other people too because they'll give a different spin.

  7. #7
    werst spella evar Bonnet's Avatar
    Join Date
    Dec 2002
    Location
    mile high
    There are any number of great books on the subject, but the honest answer? Get a college degree in CS if you want to learn to program. Its an exceedingly difficult subject.
    The Rails community, while known for elitism, is a center of excellent programming practices and good design
    Which is ironic considering its a terribly designed language. If you want to learn a programming language do not:
    Learn C++, it is a terribly designed language (operator overloading violates orthogonality, it has poor consistency, many symbols mean different things in slightly different context (*c vs c*), it is opaque and difficult to debug, it is poorly portable, and it is terrible at multi-threading).
    Learn Ruby, it is also a terribly designed language. (Most of the complaints above, plus the axiom TIMTOWTDI (there is more than one way to do it) lends it self to Ruby being like its ancestor perl, write only).

    I would generally follow the experts on this subject and say you should learn Python, like MIT, Standford, and CM teach to there new students. Python is very beginner friendly. Java is also acceptable, but generally painful for web development. Another good alternatives is Clojure (lisp variant on the JVM), thought it can be difficult for inexperienced programmers to learn. This little info graphic is interesting. The biggest thing to remember though is that once you learn how to program languages quickly become irrelevant. I work in between 5 to 10 languages in a given week at my current position.
    Last edited by Bonnet; 4th Aug 12 at 12:01 AM.


    (Previously, and still occasionally zbobet2012)

  8. #8
    Member FriendlyFire's Avatar
    Join Date
    Jul 2006
    Location
    On the imaginary axis.
    I'd also warn against having too unstructured languages like, say, Javascript, as your first language. You'd entirely skip on things like what classes are and how to define objects as opposed to making them up on the spot.

    They might feel more arcane and harder, but languages like Java or (gasp!) C# have excellent documentation, plenty of books and tutorials, and offer a solid foundation on how to program. They're the middle ground between bare metal C/obscure C++ and ridiculously high-level Ruby or Javascript.

  9. General Discussions Senior Member  #9
    Senior Member roflmao's Avatar
    Join Date
    Feb 2007
    Location
    Veracruz, Mexico.
    @Bonnet: Agree pretty much all across the board with that infograph you posted. Python would be a great start indeed. And yeah, to be a decent programmer you kind of have to know them all.

    I guess just personally I think it is more important to have a good grasp of practical concepts such as test driven development, OOP concepts such as loose coupling, grasp of fundamental design patterns, commenting style and others.

    I'd take the programmer who cares deeply about commenting and reducing duplication but doesn't understand orthogonality over the one who understands orthogonality but doesn't comment his code, every time. Obviously, to be fair, there's quite a bit of overlap.
    Last edited by roflmao; 4th Aug 12 at 8:49 AM.

  10. #10
    werst spella evar Bonnet's Avatar
    Join Date
    Dec 2002
    Location
    mile high
    I'd take the programmer who cares deeply about commenting and reducing duplication but doesn't understand orthogonality over the one who understands orthogonality but doesn't comment his code, every time.
    The Linux Kernel is very lightly commented. Good code is generally self documenting. But otherwise yes, I agree with you. One of the most valuable reads any beginning programmer will ever have is a book on Design Patterns.

  11. #11
    Commenting obsessively is always good, yes. I honestly thought one of the best things Sun did when creating Java was the javadoc system. The fact that properly formatted comments could be automatically converted into nice readable html documentation encourages you to actually comment your code

    I've actually written comment parsing documentation generators for other languages just because it's that neat.
    "Fear nothing except in the certainty that you are your enemy's begetter and its only hope of healing. For everything that does evil is in pain."
    -The Maestro Sartori, Imajica by Clive Barker

  12. Child's Play Donor General Discussions Senior Member Homeworld Senior Member The Workshop Senior Member Forum Subscriber  #12
    Not wearing pants. reki's Avatar
    Join Date
    Aug 2000
    Location
    Melbourne, Australia
    Photoshop
    Illustrator
    HTML
    CSS
    CMS (Wordpress, Drupal etc.)


    ^^ learn these ^^


    You don't have to learn PHP or java beyond anything other than a very basic level in order to start making proper websites. There are so many pre-existing scripts and apps already available & you can always hire a programmer if you need some custom work done. Most designers these days build over a CMS like Wordpress or Drupal etc. - that's a good place to start. Learn HTML & CSS intimately & learn how to build a website over a CMS & make it look & operate like your design. Learn how to create basic design elements (like logos, image elements etc.) using Photoshop and Illustrator. Those are, at a basic level, probably the most useful fundamental website building skills you can acquire to actually start making websites.
    Last edited by reki; 4th Aug 12 at 5:12 PM.

  13. #13
    Member Fenra's Avatar
    Join Date
    Apr 2011
    Location
    US East
    Dammit, I knew Photoshop would come up in this discussion >.>

    So, how does one exactly acquire a Photoshop program without illegally downloading it? I am a student, but my piss-poor community college only buys into Microsoft stuff, which does give me some nice development tools (Visual Studio, the *entire* Expression Studio with SuperPreview), however I feel these tools are kinda like using wooden hammers to hammer down steel spikes. It still works, just not as well.

    I'd love to try these things out, but at the same time, do I really want to re-learn stuff when I can use Microsoft's stuff for cheaper? Does this benefit in any way by using some of the tools microsoft has to offer? or it really just a waste of space to keep them?

  14. General Discussions Senior Member Modding Senior Member Dawn of War Senior Member  #14
    Why shout... Octopus Rex's Avatar
    Join Date
    Jul 2006
    Location
    UK
    I think many of the guys in this thread are over-cooking it some what at this stage and reki's advice is probably the better place to start. Bandying about terms like orthogonality to consider is just, well, that's just going to go right over Fenra's head. Hell, I've been a web developer a few years now and I've never heard that term before.

    The thing is that the more advanced programmers are often really antsy about programming and about 'doing it right'. I like getting it right a lot, I'm always trying to get my co-workers to use more OOP techniques and to really focus in on concepts like dependency injection, decoupling and reusability, but then as Mark Zuckerberg says, done is better than perfect.

    You could learn Python, sure, but I can tell you that I don't see any Python web-dev jobs in the shallow end of the pool where I live. That stuff is generally used to make bespoke stuff for the big boys from I what I see. You could learn Ruby, but then you'll find that almost no hosting companies have it installed, so that'll be fun, and I'm sure you'll love getting told by the arrogant Ruby community that "you are wrong" when you disagree with them. Or you could learn PHP and actually make some websites sometime soon without spending half a year wondering what the hell polymorphism is all about and why everyone bangs on about dependency injection. Sure it's not pretty, sure there's a ton of awful code out there, sure it'll let you do all kinds of lazy stuff, but on the plus side you might actually get some work out of it and you might actually not headbutt your desk in frustration! Drupal, WordPress and other frameworks/CMSs like reki suggested are a great place to start for web dev, and PS and Illustrator are super useful tools even if you're not an actual designer (being able to chop up, tweak and edit images is very useful, even if you're no good at making them from scratch).

    Note: it's perfectly possible to make whopping pig's ear out of OOP code. What makes you code well - both OOP or procedurally - is a genuine understanding of all those 'best-practice' concepts which usually comes from first-hand experience of the results of those mistakes, and generally comes from a lot of experience. Just because you're doing it OOP doesn't make your code any better I'm afraid (though I am a strong advocate of it).

    Regarding comments - write too many comments and every just ignores them from what little I've seen. Writing the right comment is a hard balance and can be futile if your colleagues are unwilling.

    Last thing: if you're serious about doing it the right way, then yeah, take a CS course on it like Bonnet suggested. If you're only looking to earn a bit of cash on the side ... well, maybe not so much. Sure, you'll end up "part of the problem" that that PHP is broken article is ranting about, but ... oh well.
    Last edited by Octopus Rex; 4th Aug 12 at 6:15 PM.
    "Life is not full of successes, it is full of failures from which we learn" - Tony Benn
    Octopus Blog (14.02.10)DOW2 GridKeys
    DOW1 Modding Tutorial ListDOW2 Tactical Primer

  15. General Discussions Senior Member  #15
    Senior Member roflmao's Avatar
    Join Date
    Feb 2007
    Location
    Veracruz, Mexico.
    @Fenra: You don't need CS5. You can pick up a copy of CS or CS2 which will more than suit your needs for about 100 bucks on eBay. It's quite a bit, but way better than the 700 you pay for a retail copy.

    If you are not familiar with eSnipe, get an account and put money on a ton of bids for used copies and you'll eventually get one (relatively) dirt cheap.

  16. #16
    Member Fenra's Avatar
    Join Date
    Apr 2011
    Location
    US East
    Would expression design count as a worthy imitator to Photoshop? Expression Web does allow for .psd files to be imported (I did one just not a few weeks ago) and it seems spiffy, but for what I plan on doing right now (aka, web dev for the common community man) I really won't need production-level work. Heck, I doubt I'll be working at anything larger than 20-30 pages at all in this first year of playing around with it. I probably will eventually take a web-centric course on the way to my degree, but for now I'm trying to get a step up on it so I can provide some useful resume stuff and become familiar with it

  17. General Discussions Senior Member  #17
    Senior Member roflmao's Avatar
    Join Date
    Feb 2007
    Location
    Veracruz, Mexico.
    I've never used it, but you can always give it a try if you get it for free?

  18. #18
    Member Fenra's Avatar
    Join Date
    Apr 2011
    Location
    US East
    It essentially attempts to act as an all-in-one design tool for pictures and vector graphics, hence me asking I think this kinda gave me some stuff to think about though. I'm curious, what is the big deal with code being so... competitive and political as you put it?

  19. General Discussions Senior Member  #19
    Senior Member roflmao's Avatar
    Join Date
    Feb 2007
    Location
    Veracruz, Mexico.
    Code is relatively complex. People resent having to endure the frustration of programming in a language they're not familiar with.

    Every language is different and has its perks, pros, and cons. And people have strong tastes over what they like and don't like.

    It's a bit like Mac vs PC or XBOX vs PlayStation. People get attached to doing things a certain way and they don't much like having to change .

  20. Child's Play Donor General Discussions Senior Member Homeworld Senior Member The Workshop Senior Member Forum Subscriber  #20
    Not wearing pants. reki's Avatar
    Join Date
    Aug 2000
    Location
    Melbourne, Australia
    Also, http://www.lynda.com is super useful if you want to learn how to use any of this stuff. For a $25 subscription fee, you can learn an awful lot quite quickly.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

     

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •