Hitting a Wall

So I’v been doing graphic design, mostly photoshop for about 8 years or so and general illustration since I can remember. Towards the end of high school I learned how to use Dreamweaver (barely) and a friend and I started making websites for local businesses. They were pretty much just a bunch of photoshop slices put together with some rollover images and a contact form thrown on a server. I mean, hey they worked and they looked okay. They were static sites so there was a lot less fuss, just the basics: a few pages (home, about, services, contact etc.) with text and maybe a flash slideshow Id put together as a banner here or there.

I just graduated from SUNY Albany with a degree in Environmental Science but with all the green talk and all the statistics I kept hearing about the growth of the field in general (Photovoltaics, sustainability blah blah blah) the job market SUCKS. Like really ****ing sucks. So iv been considering going back to what I know and love most, computers and graphic design.

So heres where the problem comes in, I want to be a real web developer not a WYSIWYG guy (which from poking around seems to be a harsh insult) and really learn code. First of all I think I should learn HTML5. I know how HTML works and everything (how colors work, tags and what not) but I have no idea how to legit use it to design a site.

But beyond that Im lost. Do I learn PHP which seems really cool since its also a programming language from what I gather and if youre coding in PHP it can read HTML and CSS mixed in right? So I looked at getting “Zend Certified”, that means I have to learn Zend framework for PHP, but I wanted to use XAMPP since it does everything for you, in terms of installing what you need for a workstation.

Then I hear all this stuff about “real coders” or “real web devs” who just use code, images, and a browser. That seems insanely hard.

Right now Im using Adobe Muse (which is ****ing awesome btw, at least I think) in tandem with PS and Edge for animations.

Is there anything wrong with doing it my way, with the Adobe suite? Its just a more artist, design driven way of doing things for me.

So basically Im totally lost…Learning any language is a task and a half so what do I shoot for? CSS, HTML, PHP, XML (dont even know what that really is yet)… god damn theres a lot

P.S. - I have learned some java stuff before so I know calling classes (program in a program kinda thing), loops, arrays, **** like that I just ****ing hate java and I really hope you dont need to know java to code and design a website

Hello and welcome to Sitepoint fellow SUNY alumni!

P.S. - I have learned some java
um do you mean Javascript? JAVA is a completely different programing language, of a different caliber and usually not the kind of stuff front end developers employ for the web. I mean this nicely, but this simple miscommunication alone is indicative of what you have to learn.

Let’s star with why WYSIWYG are bad. This not developers being snobby, WYSIWYGs often produce bad code, unsemantic code. NO MATTER HOW IT LOOKS ON THE WYSIWYG EDITOR SCREEN, the real output of a WYSIWYG is undesirable in a business setting, from a point of view opt SEO, maintenance, cross browser compatibility, accessibility , scalability , responsiveness, etc ,etc.

Did you ever read “The Mac Is Not A Typewritter?” A similar book should be written for web design … it’s not just about ‘making it look a certain way’. Designing a web document is really a melding of 6 or 7 distinct disciplines!

  1. Writing. Yes There must be content
  2. Information architecture/ Organization. Each HTML tag has a distinct and REAL meaning. The same line of your content could be marked up as a P, LI , H1 … depending on (and exclusively related to ) it’s meaning and role in the document.
  3. Content management/ back end functionality. Unless you are creating each document by hand there must be some sort of code which determines how each page builds itself.
  4. (Graphic) Design… this you probably have a handle of this, as you know this in itself is a mix of aesthetic sensibilities and knowledge of media and/or software tools. ( Someone can be great at Photoshop, yet suck at choosing color schemes and vice versa)
  5. Front end coding … the design has to be translated into usable code for the web that is compatible with a PLETHORA of UAs and devices.
  6. Functionality and UX… user interaction
  7. SEO ( taking ALL of the above and optimizing it so that search engines can find the information)

Now you need to decide which role(s) in the web design process you want to undertake. And those will determine what tools would be best to learn.

eg.: a back end dev. (#3 from above) would NEED PHP/ASP and knowledge of JSON, AJAX, javascript, and HTML at the very least!
A web graphic designer (#4) many be able to squeak by with only Photoshop and Illustrator. Etc.

Hope this helps and good luck!

Well I know JAVA and JavaScript are different I was just trying to say I understand programming in general, so php shouldn’t be a problem to learn its just I’m trying to choose what to learn since they are all so time consuming. I’m trying to make myself as marketable as possible so it looks like getting adobe and HTML certified would be my first step?

Thanks for all your help.

Well in response to your earlier question, yes you will most likely need to become familiar with JavaScript because it’s the only programming language available on the frontend. But no you will probably not need to learn Java, but you could if you wanted to. It’s a very powerful backend language (like PHP). You can also learn backend JavaScript as well.

Everything really depends on what your goal is. Web Development has tons different paths you could take to achieve the same end product. HTML, CSS, and JavaScript is really the only definite “need to know”, but even there, you don’t necessarily need to know them that well in certain situations.

A web designer needs to know HTML, CSS, JavaScript (optional) and how to design good looking pages.

A web developer needs to know a back end language (eg. PHP ), a database (eg. mySQL), JavaScript (optional) and problem solving.

There is almost no overlap in the abilities that designers and developers need in order to perform these two different roles. Someone who is really good at one is almost certainly going to be hopeless at the other (at least with respect to being able to design vs problem solving).

So the first decision you need to make is on which of the two that your abilities lean toward so that you can build on your talents.

I could not disagree more. I know plenty of developers that are good at both sides. Most people are probably going to be more talented and knowledgeable in one area more than the other, but that’s relative to their skill and their weak area may still be much better than someone else’s strong area. It’s a good distance from “hopeless”.

I am very against this Left Brain/Right Brain way of thinking. That’s been proven wrong many times.

From what I have seen from the sort of code being produced less that 1% of programmers are actually good at it. Mostly all you see is poor to atrocious code so the merely poor code actually looks good. There are plenty of people who are mediocre at both design and development but of the under 1% who are actually good at development/programming, only a very small fraction would also make good designers.

So I suppose we actually agree since you are saying that there are lots of people who are average at both where I was saying that it is extremely rare to be exceptional at both.

How does left/right brain thinking come into it - programming is most definitely an art (which I presume implies right brain activity) and I have always been of the impression that design is also an art - which makes them both right brain - for anyone who believes that sort of thinking.

Only the basics of programming could be considered a science and bases on the sort of code a lot of people produced the basics is as far as they get. I suppose a big part of this is that the most important part of programming is seldom taught and so many people trying to work in that area do not know the second thing you need to know to start on the way to being a good programmer.

How many people do you actually know who can both produce a really beautiful design for a web site out of their head and who can also produce a solution to a complex problem that both uses a small fraction of the code most people use and which also produces the result in a minute fraction of the time?

Just as a simple example - ask a few of the developers you know to do the following: “Write a JavaScript program that accepts two numbers as input from the user and computes the sum of all integers between those two numbers including the two inputs.” How many of them give you the best solution to this problem which is (y-x+1)/2*(x+y) where x is the smaller number and y is the larger? How many of them instead created code using an inefficient loop and so demonstrated that they know very little about programming?

Hey FcknDrrn , given that you said you love graphic design, you might be better suited for front end work. That’s not to say that you can’t learn backend stuff like PHP, though. Even a little bit of PHP knowledge is a great asset that can make web designing a lot more fun and allow you to do a lot more.

Same with JavaScript. Many people use it a lot without knowing much about it, harnessing libraries like jQuery that have a lot of scripts already there for use.

So my advice would be to sit down and read a book on HTML and CSS. Those two are a lot easier to learn than the others, yet they form the foundation for everything else in web design. In a short time you can have a good working knowledge of those and create really nice, modern sites. Then gradually get your head around a bit of JS and maybe PHP, and perhaps pick up a CMS so that you can build dynamic websites right away.

Hello and welcome to Sitepoint fellow SUNY alumni!

Everyone here is super helpful, thanks and even found an alumni lol

It seems I have a good handle on my path towards what I need to learn. My next question would be how to I prove myself once Iv learned HTML, CSS, JavaScript, etc.? Because the point of all this is basically a career move, I need a real job with real money, I happen to love this work so its not all about the $$$. How would I go about getting a job at a firm? Once I think I really have a handle on this stuff I just put it on my resume? Should I make a portfolio? That seems a little hard because If im concentrating on front end design and applications without worrying so much about content management and back end functionality (PhP) then I cant really build full websites, just graphical skeletons with some front end functionality.

Also, I worked briefly at a web design firm and they used a CMS (forgot the name unfortunately) but do people use them with PHP, since PHP is supposed to serve that kind of purpose right? Like administration functions and content management?

Sure you can. Static websites work just fine (the end user has no idea, really). You could even build a bunch of stunning one-page sites if you like. It’s easy to find a topic—such as a feature on the best restaurants in your area.

they used a CMS … but do people use them with PHP, since PHP is supposed to serve that kind of purpose right?

Most run on PHP, and that’s the most convenient language as most hosts support it.

I was thinking the exact same thing. But then felgall followed up claiming everyone sucks apart from him and his 1%, let’s not dwell there any longer, it’s complete rubbish.

FcknDrrn: I’ve always found myself at the intersection of design and programming and web development is a satisfying way for me to use my creative and problem solving skills. Front-end web development is really highly valued at the moment thanks to the explosion of Javascript and front end developers with strong design skills in particular are in high demand.

The other contributors in the thread have given good advice already, HTML, CSS and Javascript should be your immediate focus. You mentioned that you’re familiar with the psd slicing days of old. It’s a very different scene today and those ideas don’t hold much value so you’ll need to start from the ground up and start coding one of your designs in HTML/CSS - I spent a lot of time in the CSS forum here while learning and it’s still a great place to learn these things. CSS has grown up and you can achieve most of the effects you would use in photoshop right in the browsers these days. Javascript allows you to make your designs interactive and most sites today rely on javascript to achieve the kind of interactions that people expect on the web.
You’ll want to learn jQuery as it will make your transition into the world of Javascript much smoother and you’ll be able to get more done without being held back by things like browser inconsistencies.

Stick to learning these front-end skills thoroughly that compliment your design skills, unless you’ve got a particular interest in something on the back-end you’ll be able to pick those things up on the job. Sass would be one addition I’d strongly recommend adding to the list of things to learn - you can think of it as a more powerful version of CSS. If you end up working on a team you’ll also likely need to familiarize yourself with git so that you can make changes to the code and not blow away other peoples changes - this too will happen on the job though.

So focus on HTML, CSS/Sass, Javascript/jQuery. Make as many different types of things as possible and push yourself, there’s plenty of opportunity and it’s a lot of fun. Good luck.

How do I prove myself to get a job?
Yes, a portfolio and resume will be a large part of it. People will want to know you can work in a team, communicate clearly, have a strong sense of design and can make websites. You should try and find a community of web developers and designers near you that you can start to get involved with also.

Speed of execution rarely makes for a better program. Simplicity and readability are far better ways to judge a good program from a bad one.

Silly rabbit tricks are for kids. Your solution requires knowing how to solve it with math rather than programmatically. In the same response you talked about programming being more art than science, yet your test for a good program is if people can use science rather than art.

You’re confused.

I wrote a wall of text argument originally, but deleted it because I didn’t want to argue and derail the thread. :slight_smile: I figured it’s pointless since it’s one of those things that you can’t really prove without using extreme cases and success/skill/talent can be judged on many bases, most of which are subjective.

People can be good at more than one thing. Thinking they can’t become experts at a few things is just silly.

Not at all - this was just a simple example where the best solution is reasonably obvious. The point I am trying to make is that the main portion of programming is PROBLEM SOLVING.

With the example I gave the first thing you need to do is to recognise that there is a solution that is based entirely on the two end values and that a solution using those values directly rather than a loop is going to be possible. Since a solution that does a simple calculation is always more efficient than a loop you can then switch from the art portion of programming to the science part to work out what the formula is and convert it to a program.

In this particular example it doesn’t take much to determine that a formula involving the end values directly exists. Most programs are way more complicated and so the problem solving part is a far more significant part of the process.

Sure that particular example is 10% art and 90% science but most programs are somewhere between 50% and 80% art as the problem solving part of the process is usually not as insignificant as that example.

The main reason why most programs are so poorly written is that most programmers haven’t studied problem solving at all and so are more likely to create a loop for even a simple problem like that one - consider if the values that calculation actually needs to use are -10000000000 and 10000000000 where the loop will run 20000000001 times in order to work out that the answer is 0 compares to very little processing to get the answer with the better solution that doesn’t use a loop. With any processing that involves recursion you need to consider whether a simle loop will work instead and then for any solution involving a loop you need to consider whether the result can be obtained without a loop.

PROBLEM SOLVING isn’t silly rabbit tricks - it is the art that makes up the biggest part of programming and which most so called programmers never learn resulting in poor inefficient code.

Hey guys this is an interesting discussion about programmers but is moving off-topic so let’s get it back on track to the specific question about which discipline would be best to learn.

Iv been using this book:htmlandcssbook.com

Super comprehensive and is useful for people brand new to HTML, CSS and web development while still being helpful to me as an intermediate. Even the things in there that I knew, isnt dwelled on and I still get something out of it.

Anyway HTML is coming quickly, just a matter of remembering the exact spelling and everything for all the elements and their attributes. I guess my next big move would be to work on my own website, so I can use it as an art portfolio/resume of sorts along with my actual resume.

Also, the book Im using makes careful notes about what the common practices are in new and onld code, as in what is supported or done differently in HTML5 verses older versions. For instance, it says that the align attribute is no longer supported in HTML5. How is this possible, how do old websites get displayed properly that use the align property? I thought the idea was that in newer versions of HTML5 youd be able to do the same stuff as in previous versions, as to not mess with older websites, but youd also have the newer functions

While the HTML5 specification doesn’t include older, deprecated elements, that doesn’t mean that browsers won’t continue to support those things. There are still plenty of old-style sites out there, and browser makers don’t want to break the web. So it’s really a case of what browsers support, rather than what’s “valid”. Not much has been removed from browsers. The only thing I can think of off the top of my head is the <blink> element, which is now not supported in any modern browser, I believe.

Rrrriiggghhhtt…duh, the browser

I actually recently participated in a real time tech screen with these types of questions. I really didn’t understand most of the questions from a logical sense to to mention a programmatic one. To my defense though I was having a bit of an off day. No bother it was on to the next one and shortly after found a more desirable position anyway. I feel like I’ve traveled back in time whenever I come across those types of tech screens. In the modern world of engineering as it relates to web development front and back-end there are far more pressing topics to gauge ones skill level than math problems. The ONLY real exception to that rule is really low level programming and embedded software where math is a common day to day task. As a web developer I can’t really remember the last time I used math in the sense it was represented on the tech screen I had. I guess it works for some companies…

Personally, you should try Java again if you want to get paid $$$$$$. In my area, developers get paid in 6 figure for 5 year experience in Java. By all means, Java is nothing special. People don’t pay 6 figure just because you know Java. The real value is what open source / commercial frameworks or libraries that you’ve used before. Example

  • 2 years of REST/Web Service implementation
  • 3 years of JPA
  • 5 years of Spring MVC + Security
  • 1 years of Mockito JUnit tests
  • 3 years of Maven/Jenkins

Above examples are all Java related and there’s a lot more to the list. To get your foot in the door, I would start getting Java Certificates + Spring Framework Certificates. It is a long journey but worthwhile in my opinion.