Future Skills for a Budding Web Designer? 167
ericdfields asks: "One of my lifetime career goals is to establish myself on some decent level or another as a well-rounded, (mostly) standards-based web designer with some backroom web development knowhow. The problem is I have no clue where to begin. HTML, CSS, JavaScript are an obvious start, but what about other web-driven languages? PHP, XML, SQL, Perl... the list goes on. Should I be looking to grab hold of some Flash and Director skills? What abilities will be needed on the horizon that I can get an early start on learning today?"
Most important things to learn... (Score:5, Funny)
Re:Most important things to learn... (Score:2, Funny)
Re:Most important things to learn... (Score:3, Funny)
You'd have to pull the handle back, and take your fingers and push the tomato through with your bare hands. Now you tell me what happens when that tomato finally gives?
Uh huh.
Over and over this would happen. They even
Re:Most important things to learn... (Score:2)
Why didn't they just give you a vorpal blade +5 instead?
I say this with a smile on my face. (Score:2, Funny)
Hone your customer service skills.
Become handy with a spatula.
(Sorry, I don't have anything constructive to say here. I know HTML inside and out, JavaScript, CSS, Perl, and MySQL. Couldn't be hired as a web designer to save my life. So I'm a Unix Admin instead.)
Re:I say this with a smile on my face. (Score:2)
WEB DESIGNER? (Score:2, Funny)
Go back to say....1996 in your magical time machine
Join the HTML Writers Guild
Get a copy of HTML For Dummies
Move to California
Re:WEB DESIGNER? (Score:2)
Re:WEB DESIGNER? (Score:2)
Before any of that. (Score:5, Insightful)
Good point (Score:3, Interesting)
Re:Good point (Score:3)
That site failed (Score:2)
I went there, and bailed after 10 seconds. The "light gray on white" text is a major blunder. If you have to paste the text into a text editor in order to read it, the web page has failed. It is like trying to read a newspaper where someone went over it for a while with Silly Putty and/or an eraser and took away much of the ink. The graphics reek too: the menu on the right in which the headers are pre
Re:That site failed (Score:2)
Didn't like the gray on white style? No problem - click the side links and try some others. Note: the links simply change the CSS stylesheet.
try Black on parchment [csszengarden.com]
or orange and black on light grey [csszengarden.com]
or plain black and white-ish [csszengarden.com]
So, to discover a few ideas about design, as opposed to tying it to content, look at what people have done with the exact same site. It should be a bit of an eye-
Re:Before any of that. (Score:3, Interesting)
Re:Before any of that. (Score:2)
http://www.users.nac.net/falken/annoying/main.html [nac.net]
Re:Before any of that. (Score:3)
Re:Before any of that. (Score:3, Insightful)
So I went to art/design school. Learned a lot. Got good at Flash and what-not. Established myself as an art fag as well as a tech geek. One of my profs even talked to me about going into business with him. But before I graduated, the b
flash later, standards now (Score:3, Informative)
Please, learn the standards first, as you've given a tendency towards already. When it is time to learn flash, using it from a proper structural understanding of how the web actually works, including information structures, user interface experience and page interactivity will all help you construct better pages that take advantage of all the technologies at your disposal.
Re:flash later, standards now (Score:3, Insightful)
....JavaScript? (Score:2, Informative)
How about learning the "skill" of not using Javascript at all? If everyone had this skill, it would make make the Web a more pleasant place. Nest up, the elite "skill" of not polluting pages with Flashdross.
Re:....JavaScript? (Score:5, Informative)
There are other uses too. Realtime calculations in web pages. All things that could be done server side, but why waste the server side resources when it can be done client side?
Re:....JavaScript? (Score:2)
Re:....JavaScript? (Score:2, Insightful)
Re:....JavaScript? (Score:2, Funny)
An apostrophe has its place. And that wasn't it.
Re:....JavaScript? (Score:2)
You suck.
Okay? My grammar is pretty good most of the time.
Nazi.
I say no to JS and most flash (Score:2, Insightful)
Re:I say no to JS and most flash (Score:2)
java script and active x websites force people to surf randomly with that stuff turned on.
Good use of Javascript should complement server-side code, not replace it. In other words, generally a web-app should not rely on client-side scripting, but client-side scripting - if available - should enhance the user experience.
An example: form validation should be performed on the server-side. However, client-side validation is a nice bonus, to prevent a round-trip to the web-server only for the user to be t
Re:....JavaScript? (Score:5, Insightful)
If anything you should be encouragine this guy to write good JavaScript so you don't have to put up with the bad stuff.
Google Suggest crashes my browser, GMal won (Score:2)
Re:....JavaScript? (Score:2)
I've been using my back button for over a decade. Don't think that you can break it and I will adjust.
Re:....JavaScript? (Score:2)
Re:....JavaScript? (Score:2)
Re:....JavaScript? (Score:2)
Thanks, dude - now I just wasted an hour of my life and my wrist hurts like crazy.
Re:....JavaScript? (Score:2)
(To be fair, I'm an artist and a graphic designer in addition to a techhead - my job requires a fairly even split among these branches, but philosophically, I'm more of an artist. The methodologies towards what works and how to get things done well is a lot different than the constant upheaval of the tech world. That being said.....)
I have ZERO server side techno
Why the hell (Score:4, Insightful)
Daniel
If you're in it for the money, (Score:2)
If it genuinely does interest you and you have some programming background apready, start by picking up some graphic arts/design and UI design. The programming end of web work is usually relatively trivial.
Programming is NOT trivial (Score:4, Informative)
I would start w/ Jakob Nielsen's book Designing Web Interfaces. That will give you a basic foundation of thinking about a good user interface. Then you might want to read Zeldmans Designing with Web Standards and Cederholms Web Standard Solutions. That will give you a PROPER understanding of standards based html markup and a good intro to CSS. (Read Eric Meyer's books to further your CSS).
As to the programming for web driven apps - I like PHP the best - XML and SQL you would use within PHP. You want to have a good understanding of both of those... SQL especially to hook into database type stuff. Javascript, I'd just get a Cookbook or something - most of what you want to do with that you can quickly pick up from sample scripts.
Remember - HTML Editors are the devil!
Re:Programming is NOT trivial (Score:3, Interesting)
UI issues are infinitely trickier and require some pre-existing know-how in addition to user testing to sort out. Graphical issues aren't simply of matter of throwing images on the page, but even slashdot does include graphical design elements and images. It would do a 'budding web designer' who is
Re:Programming is NOT trivial (Score:2, Interesting)
When I started getting into web design I started working with programming/scripting and it came very naturally. I focused on programming as my primary skill for
W3C (Score:2, Interesting)
I would advise not using JavaScript. Learn it all you want, but don't use it.
While we could have a PHP vs Perl flame war, I'd suggest you take your time and try them both. And for the heck of it, throw Python into the mix. Learn them all, learn their quirks, and decide for yourself which is better for the job.
Whenever you design a page, test it
Re:W3C (Score:2)
However, your assertion that a page looking good in lynx means it will look good anywhere is ridiculous.
Re:W3C (Score:2, Insightful)
It's an underlining point of CSS - separation of data flow and styling. Lynx is used to force this into the developer's mind by doing exactly that -- only showing the flow of content.
If you content doesn't flow properly, regardless of what you do to it, it's not going to "work"; thus, get a working flow first and it will "look good" under anything.
That's my experience, at least. For whatever the heck it's worth these days.
Dynamic Layout... (Score:4, Insightful)
If that's true, I'd say the most important thing you can learn is what a dynamic site does. Understand that content will grow/shrink depending on the database at that moment and make sure your design can accomodate that.
I've been developing web sites for close to 10 years now and the ones that are the hardest are those where the designer thinks of a web page like a magazine page and doesn't understand that things stretch/shrink/flow.
That said, I'd also learn as much as you can about *how* the backend languages work (PHP, XML, etc.) but you don't need to know the specifics. But if you understand the relationships and their capabilities you'll be your developers best friend.
Re:Dynamic Layout... (Score:2)
In case anybody around here doesn't know the difference: Use jpeg for photos and photo-like images. Basically anything with lots of gradual color changes. Never use it for anything with large equi-colored areas or line-art. If you do, then the lossy compression scheme will introduce visible arti
Re:Dynamic Layout... (Score:2)
Of course, the reverse can happen, as well, particularly for larger, sharp-edged pictures/drawings. For small items, I typically examine the item at about 400% magnificatio
Depends? (Score:3, Insightful)
There are too many facets to learn it all. Pick the arena you are interested in, and work with others to develop the entire package. A "Jack of all trades" will usually create software that is mediocre in all areas.
Re:Depends? (Score:2)
I have to say, that might be the best advice I've seen on the subject. Someone who understands what makes a UI functional, coupled with some graphic arts experience to know what makes one attractive would be a godsend.
Sadly, those skills are the ones I have a complete lack of - my UI's look, well, utilitarian is a generous description. Fortunately I'm quite happy working the
Vector Graphics and Video Editing (Score:2)
I'd concentrate on learning how to make the same content look good on screens that vary in size from a wristwatch to a billboard. This means dropping everything that uses pixel-based measurement, and going to vector graphics. Learning how to present the same content in a linear way for small screens and a parallel way for big ones would also be good. All you've really got available now for
Simple (Score:5, Informative)
CSS is next. This is what you use to make your HTML look pretty. Memorize all the little things, there aren't that many really.
PHP next. Play around with generating dynamic HTML.
Then MySQL (or other database), and practice creating forms that get saved to a database. I'd recommend spending a good amount of time on this one and learn things like database architecture and how to tune things.
Javacript should probably be last, since you shouldn't need it much, if at all. A lot of sites have a hundred K of javascript code to try and make things "cool". Go for functional, not cool. Things like confirmation dialogs are good. Things like form validate is WRONG - the backend should do that, not the client.
Photoshop is fairly important, but won't get you far unless you know the other stuff. Although you could do this right after HTML and CSS if you want to do some static websites for people. For dynamic stuff, functionality is usually more important than looking pretty is a business environment, but your results may vary. Besides, proper design will let your site look cool without a lot of eye candy.
As for Flash I don't personally like it and haven't bothered to learn it yet simply because I don't have a NEED for it. That's what it comes down to. Flash isn't necessary for web design. If a customer needs it, subcontract it out.
Your advice depends... (Score:2)
.. on if he wants to be a web *designer* or a web *developer - two totally different things. You are going more the designer approach, and from that point of view I mostly agree, except that i would suggest he learn XHTML 1.1 rather than HTML (start with the latest - XHTML works great in all current browsers, and a compliant, doctype'd page renders faster than HTML 4.0 in Mozilla and IE, and there is no need to suport netscape 3.0 anymore).
However, if you want to be a web *developer*, Javascript is very im
Re:Your advice depends... (Score:3, Insightful)
Aside from pointless spec (or IE) breaking, what does this achieve over XHTML 1.0 or HTML 4.01? Markup wise, HTML 4.01 Strict is pretty much identical to XHTML 1.0 Strict and XHTML 1.1, but there are a whole load of other issues with using XHTML (1.1 especially) you need to be aware of that suggesting everyone use it is just.. well, silly. This is not a place you want to version-chase unless you like unnecessary hacks and more points of fai
Re:Your advice depends... (Score:2)
I disagree with the grandparent post. XHTML 1.1 is not the place to start. XHTML 1.0 is IMHO. That way you can develop in HTML 4.01 or XHTML 1.1 - without neededing to learn/unlearn too much.
Migrating a site to XHTML 1.1 is a challenge, even for someone like myself who has been a web/db developer since 96. My current personal site started as XHTML 1.0 Transitional, then I moved to 1.0 Strict, then 1.1. XHTML 2.0 looks nasty, I migh
Re:Your advice depends... (Score:2)
Although I take "web developer" to mean somebody capable of creating an entire website, both UI and back-end. I know this definition may not be accurate in a human resources controlled environment, but I'm a loner and "web developer" seems an appropriate tag for myself as I do everything.
As for the JavaScript capabilities, I agree. Although
Re:Simple (Score:3, Insightful)
I would agree that you *shouldn't* need Flash to build a web site (at all). I hate flash. It doesn't do anything functional that can't be done without it, and it requires a proprietary plug-in, and I hate needing to download plug-ins.
So much for my personal rant, because if yo
Re:Simple (Score:3, Interesting)
Re:Simple (Score:2)
...of course, PHP is a scripting/markup language and Zope is a content management framework (that has its own storage mechanism, and so doesn't need a database -- or a web server for that matter), so the comparison doesn't really work there.
But the point is a fair one: don't just learn PHP -- follow up with Perl, and not just Perl, but Perl's mini-languages for site management: Template Toolkit, Mason (which is much like PHP), HTML::Tem
Re:Simple (Score:2)
ASP (to try the Microsoft set of tools)
While the remainder of your comment is sound, if you're talking about "classic" ASP (as opposed to ASP.NET) I'd caution against learning ASP (disclaimer: I'm an ASP developer): ASP is deprecated in favour of ASP.NET on Microsoft's web-server (IIS), and horrendously expensive on any other platform (we've just moved from ChiliSoft ASP/Cobalt RaQ-Linux to SunONE ASP/Sparc-Solaris, and it was the software, not the hardware, that made our bean-counters cry ;)
ASP is old-
Re:Simple (Score:2)
Actually, using XHTML 1.0 Strict and making sure it passes the validator is the first thing. CSS can do all the eye-candy stuff. Due to a few bugs in IE, you will still have to use tables for a few layout elements.
SVG is part of those nice things that will arrive very soon.
XML and XSL-T is a nice combo too for dynamic data.
Re:Simple (Score:2)
If you are doing anything on the web, whether it's web app development or web design (two very different things), you need to know HTML and CSS. Everything else is dependent on what you are trying to do.
If you are doing web development you need to understand databases and have a general knowledge of how they work. Read about them before you install one. You really, really should understand why the DBA has set up the
Re:Simple (Score:3, Informative)
Re:Simple (Score:2)
Welllll, sort of. Yes, the back end should validate all input data, just as any program should validate input data. You always have to validate on the back end; there is no getting around this.
On the other hand, a well-written form validator on the client side can have several benefits, including better user feedback in the form of immediate rejection of invalid input (rather than making them wait for the round trip to the
Re:Simple (Score:2)
Ok, I will concede a little. It's going to depend on the project first and foremost. I myself have done client-side form validation in the past, and I have also used javascript for lots of stuff on commercial web apps for the company I work for. It usually comes down to part of a design decision on the look and feel of an app.
My initial comment was poorly worded and didn't go into great detail on how/when that should or shouldn't be done. It was meant as an example of "do
Re:Simple (Score:2)
Re:Simple (Score:2)
No, client form validation is definitely GOOD. With proper client side form validation in normal cases you can prevent unnecessary requests (those with invalid input) to the server. This saves both user's time and your bandwidth bill. Of course, validation MUST also performed also on the server side (client may not support JavaScript for a reason or another or client may maliciously by-pass the JavaScript validation). You can't
Re:Simple (Score:2)
While I would agree that the backend should definitely validate form data, I would disagree that you should not also validate with script on the frontend.
For example, Imagine that you have a lo
Re:Simple (Score:2)
Re:Simple (Score:2)
Changing it in two places does have to occur unless you're using code generation tools to generate a JS file as well as a file for whatever scr
Re:Simple (Score:2)
Respectfully then, your experience seems to be pretty limited.
Caching happens all over the place. Browsers cache. Department proxy servers cache; corporate network proxy servers cache; ISP gateway servers cache; load balancing gateway servers between the web server and the site's uplink cache.
The point really isn't worth debating: client side validation, when done properly and well, can have a huge positive impact. Just lo
As other people have stated (Score:2)
It really depends on which part of web space you want to be in.
Learn you cannot do it alone (Score:5, Informative)
The hard part of being a developer is troubleshooting, debugging and optimizing. The only way to know effectively do it is to have a complete understanding of the entire web process. Those skills really come only from experience.
It is learning how ALL the pieces of the equation fit together and interact. I.e How does the HTML in the site render with the browser, is the traffic effecting the performance, if so are the images to blame or possible a database connection? Is there a caching issue in the browser causing upodates not to show? What version of apache/PHP are running, how is each configured?
I own and run a small hosting company. I also do a lot of development using mainly PHP, but there are a few PERL scripts, shell scripts and even a C program here or there. My company specializes in hosting small developer and designers who are just getting started. So We actually get a lot of questions and issues, that usually stem from the fact that the people just do not have a complete picture of the system.
For example one of my larger more experienced customers who has two dedicated servers, and hosts about 300 domains on them, called me with a problem with a shopping cart she has used many many times before. For some reason the site was excruiatingly slow, and she did not know why. A quick glance at the config file told me she was running a database off a server in another datacenter. So there was a lot of overhead from the lookups. She knew this, but didn't realize the impact that geography makes, and she wasted a day trying to figure it out before calling me.
Anyway, in my opinion it is good to lear one or two skills really well, and assemble a team of people around you that can fill in the gaps. But it is equally important to know a little bit about as many skills as you can. This is important for several reasons:
1. If you are farming out the work you can give the subcontractor good specs, and can in general communicate your needs better.
2. If you do need to learn the skill it will be easier with some background to start.
3. A lot of the skills and languages and tools you learn share common elements, or at least common ideas. So by learning new things, you can often take those skills and apply them to your area(s) of expertise and become better.
4. learning about the features and benifits of a wide range of tools will help you identify the best tool for the particular project. That will help you be more efficient, and thus make more money.
Anyway if I were starting with a blank slate and wanted to be an independent developer. I would learn HTML and CSS as they are the fundemental building blocks. A server side language is also very handy, and will allow you to truely take advantage of the numerous free scripts. It is one thing to install a script, it is another thing to fully integrate it into a site, knowing the language will help. I prefer PHP.
If you pick up PHP, knowing basic SQL and specificall MySQL will go a long ways.
Flash, is handy but I try to avoid it for most sites, animated banners are pretty worthless none and really do not provided the customer with any bang for the buck. If your client insists on it, it is easier to farm out the Flash dev.
Graphics skills are very handy, but can be very tedious and time consuming. It is a good idea to know how to "tweak" images, change colors, crop, scale, etc using Gimp or Photoshoto, etc. But Like flash you may be better off letting an artist do the none technical design work.
Javascript has come a long way (or more accurately browsers have come a long way) since now it seems much easier to get Javascript to work across the various browsers. There is a plethora of quality free javascripts
Speaking as someone in web development... (Score:4, Insightful)
HTML is a must. Learn it from the w3schools [w3schools.com] website - their tutorial rocks. Also check out XHTML, and see if you can conform to the standard in everything you write, whether it is required by your job or not. Standard conformity is a good way to save yourself when all the browsers in the world render differently.
CSS is good to know, BUT: most of the time, a company will have a CSS template that they use over all their web pages. Sometimes you'll just have to include this template in your HTML (a one tag thing), and sometimes you'll have to edit it a bit. If you ever have to make your own, a quick look at the above website will help you do it immediately (if you can already do HTML, CSS makes a lot of sense), although I wouldn't focus on it initially.
ASP (& VB), JSP (& Java), PHP (& Perl). Most companies are going to be tied to one of these three. The best thing to do is be a beginner at all of them - take a look at sample code from all six - and then become an expert on the job. My current employers (a university) are tied into Microsoft products, and politics (and other interesting financial things) keep them from changing. However much I would like them to move over to LAMP, I'm not going to sit and mope and lose my job. THUS, I code in ASP with Microsoft SQL-Server, and write VB programs for another section of my department. Be flexible. Don't assume you'll get to use your language of choice, wherever you work. Sometimes conditions prohibit it.
Learn SQL. Forget all this "learn MySQL" stuff. The connection to the database is generally something you'll write in 30 secs - with some template somewhere - and the SQL code to actually query and update that database is going to be the important, life-changing stuff. Learn SQL. On that note, if you're planning on being more of a back-end web developer (like me), learn database management. Learn how relational databases work. Learn how JOINs are your friend, and multiple relations (or tables) are a good thing. Ugly database code kills me.
And, to take a note from Joel [joelonsoftware.com] yesterday [slashdot.org], know how to communicate. Most web designers - the people who will be giving you changes that you absolutely must make or they'll die of horror at that color scheme - are art or design majors who have the elite thing going just like most of us programmers. Learn how to talk, how to listen, how to accept someone else's decisions when you don't have the power to make them - yet.
If you're planning on being back-end, there's a lot of other stuff you might need to know: how virtual directories work, how IIS sets up ASP applications, how Apache's configuration file works, how home directories are transferred over, how server scripting actually works, how to lock down a web server, etc. But if you have a good grasp on the above, and you stay flexible, you should be ok in the job market.
(That, and having all those acronyms on your resume will get people hooked if you can actually confirm your knowledge!)
Re:Speaking as someone in web development... (Score:2)
Thin Ice . . . (Score:5, Informative)
Go to college, and at least get a Business minor. Most of the technologies that are needed for web development are self-teachable, so (again, IMO), if you want to go into computers you may not needa a CompSci degree. Many organizations look for somebody who is technical, but who understands their industry--hence the business minor advice. By that, I mean, you'll understand a bit more about business. However, a business minor (or degree) is really generic.
I used to do IT, now I'm in law school. I don't necessarily plan to be a lawyer--I presently am inclined to return to IT. Having an advanced degree in an industry also helps your job potential.
When it comes to which languages to learn, HTML is too easy to learn to be mentioned--just follow the advice of others on this list and learn HTML properly, not like the WYSIWYG editors might teach. I'd recommend PHP, Perl, Python, all three. I'd also recommend a systems language (Java, C, C++), Mysql is prefect because it helps you learn the fundamentals of databases at a low cost (free).
Depending on where in the country your are, though, you may have to submit yourself to Mr. Bill. In my local market (I moved from where I did IT), Unix skills aren't as marketable as MS skills.
Anyway, a lot of service IT can be self-taught. So, educationally focusing on something else is good for balance. Business helps you communicate to the business types. Other degrees to other specialties. An advanced degree also helps as well as increasing salary potential.
Finally, Be Flexible.
Some different advice (Score:3, Insightful)
4-5 yrs down the line you will probably want to be doing something else less web related - most people want basically the same thing from their websites. And once you have built umteen sites for umpteen different client - you will find your self wondering what other interesting development jobs there are about. I'd advise getting some other more generic skills - C/C++ maybe something else but that can easily be leveraged when you decide websites are'nt challenging any more...
Skills... (Score:3, Interesting)
So as graphics designer you probably need to have good knowledge of:
1. Basics: HTML, CSS, graphics programs (loads of, depends on what is your artistic direction), maybe Flash (but I don't like it).
2. More advanced stuff: template engines like smarty or common CMS systems, W3C specifications, accesibity, interfaces design methodology, typography.
As database designer you should be aware of things like:
1. Basics: SQL basics, popular RDBMS like MySQL, SQL Server, PostgreSQL (go with this one), SQLite etc.
2. Advanced: database optimalization, RDBMS specific issues, DB abstraction layers (to make code portable between RDBMS), DB server administration etc.
As code/logic designer:
1. Basics: PHP, Perl, Python - you should at least know few such languages.
2. Advanced: internals of servers (like Apache), advanced programming (probably object oriented), use of popular extensions, systems (like Zope, Pear common CMS systems), templating engines (to work with graphics guy).
Also there is another side of Web which is *content* - it is also wide area how to manage your site, analyze visits, clickpaths, focus on best stuff and forget not visited parts, marketing and so on.
There is really lot to learn to be good webdesigner, you should know at least basics of those topics to be self contained designer. Otherwise I sugesst you focus on things you like the best (graphics/coding/managing etc.) and work in a team of narrow specialists.
Here is my take on it (Score:4, Informative)
You say web designer, so I will assume you want to go for a more visual development, than a programming/scripting side of it.
With that in mind I would suggest the following:
Now for the theory. This seperates the person who was good with crayons as a kid from someone who can seriously understand what a website means. You need to learn concepts beyond just simple design. You need to understand how web interfaces work and how users relate to them. Read the articles at use-it.com to get a initial understanding of this. You should understand concepts like the "page fold" and how does it relate to content on the page, how much time should a page take to load, most common page dimensions, what actions people commonly do under certain situations and what link colors people are used to and how should links look like. All of this mainly falls under Visual Information design. You have to know how to communicate what the information is trying to say. If you're the type who likes to go for the big flashy images, then you missed the whole point. If you start off your introduction with "I'm a print designer" or "I come from the print industry" then you need to stop, turn around and go back to the books.
Now for the tougher part. Adding in the developer side of things. If you want to become well rounded, the main questions to ask are:
This is not to discourage but to at least ask the basic questions
If you want to at least have an understanding, then I would suggest...
If you want to do development, then I would suggest...
Re:Here is my take on it (Score:2)
As a web developer myself, if I were to be hiring someone now, I'd say they MUST know HTML, CSS, JavaScript, XML, XSLT, Java/Jsp/Servlets, and eitehr perl or
Re:Here is my take on it (Score:2)
* that it can be turned off, so you NEED server side validation anyway,
* the interactiveness is not necessarily helpful if the developers do not denote locations for users to plainly see, which requires more work to implement, but can be easily setup server-side,
Though I do agree with your assumption on it, it's best to deal with just one form of validation.
It depends on... (Score:4, Informative)
By the definitions that are used in the circles I am involved in a web designer is someone that mostly is designing the visual, purely front end, aspects of the web site. The web developer on the other hand involves the addition of software development that happened to involve using the web browser/web server client/server paradigm with dynamic content.
Between the two, you will be much more marketable as a potential employee / contractor if you are the developer.
Like any other software developer, you need to be familiar with general computer science topics. Also learning to think algorithmically and having a solid handle on the theories of procedural and object oriented programming and then expand into the languages that are relevant to your specialization - In this case web programming.
Another important prerequisite is an understanding of software life-cycles. Web based applications (yes, a web site is a web application) are no different than their desktop cousins in that they grow, adapt and ultimately reach a point that they need to be updated and replaced with newer iterations of code.
With respect to specific technologies, if you have solid grasp of procedural and object oriented programming, moving between PHP, Perl, Java etc. shouldn't be that huge of a leap. A prime example of this is that PHP and Perl share a great deal of like syntax.
My personal opinion on the "essential" technologies of web development with respect to languages are as follows:
PHP and Perl - If you want dynamic content you need a web language. Java servlets have a little higher of a learning curve, so I would start here.
SQL - If you have dynamic content you need to store it somewhere and flatfiles are poor for performance and developer sanity. Learn SQL (mySQL is a good and cost effective place to start)
CGI - Although CGI is a communications environment to get data to your script when executed server side, and not a language per say, you need to know how it works in your sleep. The moment you have one dynamic thing on a web site you are touching on CGI in some way and just relying on your language of choice to decode passed information to you is not going to cut it in the real world.
Apache - One other thing to mention is that you should also become very well acquainted with the behaviors of your web server. I would recommend Apache for two reasons. One is that it is readily available in an unencumbered form. Second, although there are many fanboys that may pipe up and recommend there favorite although less popular web server. Apache quite simply is dominant because it covers all the bases, performs well and quite frankly makes it so there isn't a major reason to bother with anything else. Apache has a multitude of modules available that extend and enrich the functionality of the base server platform. Knowing how to make use of them is something that you don't want to pass up.
As far as non-essentials to pick up on once you have the above out of the way:
Java - In many places where you are developing a large scale web application, a well placed java applet can be helpful. This can include real-time communications interfaces for chat functionality, or multimedia services.
Flash - I'll be the first to advocate NOT using flash wherever possible, except in some extreme cases. However there is a point to be made that knowing language is a good thing, not for just writing new things, but also for reverse engineering or porting an application to another language.
My $0.02
Re:It depends on... (Score:2)
That's like being an expert word processor user (Score:5, Insightful)
Lifetime goal? Either you're twelve years old, or you're setting your sights really, really, really low. Or both.
Web design used to be tough a long, long time ago. These days, saying that you're going to be a well-rounded web designer is like saying you're going to be a well-rounded word processor user or desktop publisher. Off-the-shelf tools like Dreamweaver can produce web code more than good enough to get by. The challenge is no longer the tool, but the content: businesses have a greater need to put together sensible content that users want to consume, rather than just putting together a well-formatted web site.
If you want to build a set of lifetime career goals, get a role model and ask them what skills they use in their daily job. Don't make the mistake of asking them how they got their start, because lots of us got started in web design because it was tough ten years ago. It's not tough anymore, and it's not a great place to start now.
If you want to make money on the web, don't get started with design - get started with content. Find a subject that you're an expert on, and build out your content using any run-of-the-mill web site management system like Plone or Xoops. Forget getting good at HTML - any monkey can do that. Get good at providing content that users want to return to, and then you have a shot at making money.
Re:That's like being an expert word processor user (Score:2)
Open source site engines are also proliferating, and so is open source Web design [oswd.org], and frequently one can launch a complete Web site by just going through the install manual or performing a few clicks in Fantastico, which many Web hosters provide.
Buildin
Re:That's like being an expert word processor user (Score:3, Insightful)
Well, that's true if you're making very simple pages. Even simple pages, it's worthwhile to know some HTML though (which, agreed, isn't hard). However, I've never gotten a complex page (even one without any
Graphics vs Code (Score:2)
Decide right off the bat if you intend to be a Graphics Designer who specializes in doing web layouts, or a Web Coder. The two get confused and munged together, but most people are only good at one or the other. If you're going graphics design, hook up with someone who can do the coding side, and you do the HTML templates and the images and the layout and css and all that junk. If you're going the code route, learn the obvious back-end scripting languages, and learn javascript and (d)html stuff. Don't e
Misuse of HTTP (Score:2)
The Web has been polluted by the ever increasing crop of "web applications." HTTP is not designed for session-based, interactive applications. Yes, some limited session support is very powerful (as exemplified by Slashdot.org). Amazon also has it right - lots of back-end processing to present useful dynamic (but not "Active") data. Gmail has it wrong because it relie
Ability to learn new skills... (Score:4, Interesting)
Don't specialize on technologies, focus on problems instead. You'll have to learn a new technology every year to solve the ever same problems.
Bad timing, but... (Score:2)
If you've no content, you're not going to appreciate it :-).
try it before you buy it (Score:4, Informative)
This is just an opinion, but it would seem to me that if you don't already know a big chunk of html, css, and some kind of scripting language, you're not really in a position to decide that web designer/developer is the right career. Get some experience. Find out if you like it. Then start planning how to enter a career.
As for web technologies, especially on the developer side, be prepared to enter a never ending learning cycle. There are tons of different standards and technologies out there that all have to do with presentation on the web. Many of them are in flux.
As for what a person should learn first... the plethora of technologies makes that an open question depending on what kind of projects you are working on. On the bright side, learning any kind of web programming will move you closer to your goals. Some tips:
* Target rising technologies like PHP.
* Avoid obsolete stuff like ASP.
* Avoid anything that is "company XYZ's blah". For example, Macromedia ColdFusion.
* If you are not a developer, avoid complicated platforms like J2EE or ASP.NET. Simpler scripted languages like PHP or (shudder) ASP will be easier to get going productively.
Also, I don't know what kind of background you are coming from, but you should realize that good web design requires a strong design background. It has little to do with languages. Being from the other (developer) side of the pond, I've found books like Steve Krug's Don't Make me Think [amazon.com] and Robin William's Non-Designer's Design Book [amazon.com] to be quite valuable and easy to read.
Pft, forget all that.. (Score:3, Informative)
Seriously though, at one time I wanted to do web design as a part-time side job, but after creating a couple sites I decided it was a terrible idea. So, unless you enjoy making websites for people that have no freaking clue what they want on their site and aren't willing to provide you with any text related to their website topic, then don't do it.
Less "web designers" == Less worthless websites
Funny you mention it. (Score:2)
You need to devote some time to understanding what he person in front of you is doing so you can grasp what she wants to see on a site.
If you have a clear idea in general terms of the field and context of a website, then it is easier to ask the right questions to obtain the right answers from a prospective client.
Most important (Score:2, Funny)
Re:Most important (Score:2)
Kudos, sir.
I knew if I scrolled down far enough, I'd find somebody had already posted this.
XML is the keystone now (Score:2)
Just about everything on the web is related to XML somehow. Learn the syntax first (most of it you probably know from HTML, but the rules are stricter). Then, apply that knowledge to XHTML (plain HTML should die an unremarked death). Study the DOM, and learn how to manipulate your well-formed documents (this is where javascript comes in) adn how to make them pretty with CSS.
Up until this point, do not use Internet Explorer. You will only fall prey to its quirks and stray from the Way Of The Standard(tm
My Laundry List (Score:4, Insightful)
In my capacity as a web developer, here are the software packages that I feel you should have a firm understanding of:
And now for some soft skills. First, you'll need to learn to give effective presentations. You could use Powerpoint for this, or Keynote or Impress or just print them on transparencies and put them on an overhead projector. How you do it is up to you. Will you ever need to give presentations? Not really, but effective presentations require a lot of soft skills - eye contact, graphic design, pacing, speech tones, body language - that to be skilled in presentations in general means to be skilled in a lot of other areas.
You should also familiarize yourself with colour [webexhibits.org]. Learn about Pantone [pantone.com], just so that you know about it. Learn how colours play off each other, which colors look good on which backgrounds. Learn about bordering, whitespace, balance, and form. Consider the Pantone Guide to Communicating with Color [amazon.com] - out of 61 reader reviews, it got 4.5/5 stars, and is a good place to start.
Learn about logos. How companies make logos, and why. What goes into making a logo, subconscious suggestions from logos (there's a reason Playboy picked a bunny for their logo, and it's not obvious). This will help in your graphic design and page layout.
Learn about accessibility [w3.org] and colour-blindness [webexhibits.org].
I'm probably missing a ton of important stuff, but if you do it right and are willing to learn (and posting on slashdot seems to imply that), you'll probably learn what you need to know as you go. If not, just come back and post another Ask Slashdot.
Re:My Laundry List (Score:2)
IE's support for technologies usually encompasses the latest technologies, just not completely. IE's support for CSS1 is spotty, yes, but it does have support for CSS2 - which also is spotty. Still, IE tends to support the majority of any given technology, just not completely or correctly.
IE will support CSS3, as long as CSS3 is ratified before Longhorn goes gold. Its support will be poor at first, and people will complain, and then it will get better, but
webdesin is design (Score:2, Interesting)
webdesign is still design, so study to master the basics elements of design:
a) composition : creating balanced, interesting , beautiful layouts. study the grid system in depth and be aware of the latest trends (vector arrows and three million lines packed into a small screen). 'less is more': study minimalist.
b) typography: most content on the web is text . learning how to m
Where to start... (Score:3, Insightful)
First, you've set your lifetime goals way too low. If you are any good at all, you will have achieved this in less than a decade (probably half that) and then it's crisis time. Set your lifetime goals higher, the higher the better.
Second, while you do need to know this technical stuff, that's not all there is to it. On top of HTML, XML, CSS, JavaScript, Java, PHP/ASP and SQL, you will need to understand (and be good at) graphic design, and have some other domain knowledge that gives you insight into the business reasons for the web design work you do. You can't get most of this knowledge quickly or easily, some of it you simply must be born with and some of it will only come after decades of experience.
Your best bet is to go straight to your local community college and enroll in the Web Design or Web Programming certificate course. While you're at it, think about enrolling in some other, largely unrelated major (business management, visual arts, chemistry, psychology, english literature, whatever) which will give you some outside perspective to ground your technical skills. You can finish up both the certificate and the AA in two or three years as a full-time student, or four years of part-time school/part-time work. While you're there, take advantage of an internship or cooperative education program.
If you're feeling really energetic, replace community college and AA in the above paragraph with university and BA or BSc. Lather, rinse, repeat.
How much time do you have? (Score:2)
Probably lots more I'm forgetting. The point is, if you want to know what you like working with, you are the only person who can answer that.
More importantly, by doing this you end up with the same kind of underlying skillset that you would get, say, by playing five or six games for every major gaming platform, or using five or six entirely diff
Math, Logic, Composition, Marketing and Business (Score:3, Informative)
Know how logic works. Conditional statements are what makes a web application do almost everything it does. If this condition, do (a), if some other condition do (b), else do (c). You can copy and paste code to get some functionality to happen but if you don't know how it's logic operates you won't be able to customize it to your particular needs.
Compose things, don't just throw them together. Composition includes balance, hierarchy of importance, and purpose. Use composition when creating the look of a site and when designing the architecture and user flow.... composition tells your audience how to use your site and what is important and what is they should pay attention to.
Marketing and Business skills will help you understand your clients needs as well as aid you in your own personal success whether you work with a company or on your own.
Everything else you learn now will most likely be old-fashioned or worse yet EOLed by the time you get into your career... even if you plan to start working in 2 years... languages come and go, applications change all the time and new ways of doing things are constantly being invented or 'innovated'.