This is why I love programming -- and the programming community, warts and all. Tiffany's an Environmental Science major who had a month of free time so she decided to learn how to make web pages. That's the same way I started (albeit as an English major), and the cocktail of instant feedback and ease of discovery kept me as a happy addict of the command line ever since.
To me, accessibility and approachability are two of the most important tenets of any discipline. I think it's important that we make sure there are more Tiffanies and less stories of overharsh criticism (eg. http://harthur.wordpress.com/2013/01/24/771/)
You might not think that everyone should learn how to program, and that's okay, I agree with you -- but at the very least, I think people should have the ability to learn what they want to learn, as ably and quickly as possible.
Maybe it's because I'm old (41, starting programming on a TRS-80 in the early 80s), but I'm astonished sometimes at how much fuss is made over such relatively minor achievements. This is lowering the bar on what stories are 'interesting', and - honestly - turns me off coming to HN because of the (for me) lower signal : noise ratio.
And I disagree that accessibility is so important. Hard stuff is hard, and takes time and effort to work out. To provide a counter and parallel example - these days anyone can download some software and produce 'music' on their computer, and the ease of doing this means that a whole pile of rubbish is produced, some of which people actually believe is worthy of sale. People who are talented and capable will always find a way; conversely, I don't think it's a bad thing that people who are less talented and less capable give up, and find something else they are better at and have more fun doing.
I took a nontechnical friend of mine to Maker Faire in NYC a couple years ago and for the first 20 minutes or so all she could ask was "why?" As in, I know it's possible to make a robot that paints weird pictures or a flowerpot that sings or a giant, iron propane-flame-breathing dinosaur, but why would you? What purpose does it serve? Who's paying for this stuff anyway?
The answer, I think, lies at the center of the hacker mindset: there is inherent value in the experience of making things, and inextricably, the experience of learning how to make them, regardless of the value of the end product. Surely if we believe it's valuable in and of itself to eg. write a Brainfuck compiler or scrape HN for sentiment analysis or build and launch a satellite with the sole purpose of detecting gravitational waves, we must believe it's also valuable for someone to learn to program and build a project, even badly.
So with that in mind, I absolutely think accessibility is important, resume bullet points and job prospects aside; for the same reason I think art, music and woodshop should be taught in schools even though most kids won't grow up to be painters, singers or woodworkers.
> I took a nontechnical friend of mine to Maker Faire in NYC a couple years ago and for the first 20 minutes or so all she could ask was "why?" As in, I know it's possible to make a robot that paints weird pictures or a flowerpot that sings or a giant, iron propane-flame-breathing dinosaur, but why would you? What purpose does it serve? Who's paying for this stuff anyway?
I get really sad when I hear this question, because it is like this fundamental question people have and it lies at the heart of why some people appreciate art and some simply cannot.
But yeah. I got this from a relative and asked, "Why do you go out drinking and dancing?"
The great wall of China started as one measly block. Do we undermine the effort of the labourers that pushed it into place? It is just one rock. Not worthy of any praise.
But we may be missing the bigger picture. What you call a minor achievement is in reality a big step towards becoming a programmer. The biggest block to programming is being courageous enough to dig into the source code. Be it markup, or else. Who are we to criticize the achievements of others? When in reality we walked down the same path. Do you not remember the first time you were able to print your name to the terminal prompt? I do. It was 1984. I got the same jolly feeling when I did it with Javascript, back in the year 2000.
Who knows if the OP will turn out to be a great programmer?
The point is not criticizing the achievements of others, but putting them in context of a greater whole. Creating your own website is great, but it's a tiny first step in a long journey. If's up to the individual to see how far they want to stick with it, but we should never mislead people by telling them that their achievements are greater than they really are.
I may be biased, but the amount of "putting them in their place" comments is disproportional to how much they overestimate themselves. I doubt Tiffany thinks that she's going to be debugging C++ for Google's [redacted] within the year, for example.
Others' accomplishments might seem tiny compared to where you are, but gradually realizing that there's always more to learn is part of the growing process. All of this "putting things into perspective" is perhaps unnecessary - when I got started, I certainly didn't (and couldn't) have had as wide of a perspective as I do now.
I wrote: "putting [the achievements of others] in context of a greater whole". This has nowhere near the negative connotations that you're implying.
>All of this "putting things into perspective" is perhaps unnecessary
Perspective is always important as it allows us to celebrate how far we've come and remain humble at how much remains.
Personally, I've seen too many CS101 students get an over-inflated ego after they are told that they've become "hacking Gods" after setting up their own blog and playing with customizing the CSS.
I hear this a lot. While I would not call most basic work on websites very complex, I struggle to figure out why it's not programming.
You are writing a series of inline presentation commands mixed with content, not unlike how Knuth preferred to write (a technique he called literate programming and that frequently went double-meta when he'd embed TeX documentation for the Tex source code using TeX). This document structure can then be further augmented by directives in one of a few (common, many exist in the margins) ancillary languages, two of which have variables and loops, one of which is Turing complete.
Making websites is programming by any reasonable definition of the word. Usually the people I find saying it isn't then make arguments that are basically design to exclude anyone who hasn't been at it as long as they have. Usually, because they're a little insecure about the slow erosion of the barrier to entry to the field.
There are plenty of things in our modern world to get your jimmies rustled over, man. If you wanna take on a really scary-bad-idea issue in this sector look at how a very good embeddable Javascript engine is being misused for sub-par, poorly designed distributed systems programming.
This is a nice, comfy thought but it's just not true. Programming and web development are entirely different things, and it doesn't have anything to do with barriers to entry or how apparently "difficult" each of these things are. They're just different.
Any suitably competent and experienced programmer could pick up a new programming language in a week or two of focused study, but they'll basically be starting from scratch if they're learning HTML + CSS for the first time. Meanwhile, a web developer who only knows HTML and CSS is entirely unprepared to do any serious work in any real programming language, and would be starting from scratch if he decided to pick up C. This doesn't mean one is smarter or stupider than the other, but it does mean that the process of telling a computer what to do and the process of telling a computer "here's some text, and here's some guidelines about how you should display it" don't inform each other.
> one of which is Turing complete
Turing-completeness is not difficult for a piece of software to achieve (HTML5+CSS3 is basically Turing-complete by accident) and I'm sure you'd admit that HTML5+CSS3 is not an appropriate language for performing any serious computation.
> This is a nice, comfy thought but it's just not true.
Actually I think most people found it profoundly uncomfortable.
> Any suitably competent and experienced programmer could pick up a new programming language in a week or two of focused study, but they'll basically be starting from scratch if they're learning HTML + CSS for the first time.
This has nothing to do with your point. Most programmers struggle to pick up Lisp, Haskell and ML for the first time, but those are unambiguously programming. TeX is usually a bit tricky too.
> Meanwhile, a web developer who only knows HTML and CSS is entirely unprepared to do any serious work in any real programming language, and would be starting from scratch if he decided to pick up C.
Much as it pains me to do this, I cite Node.js as a counter example. People can and do write systems software using their understanding of Javascript as a basis. They may not do it well, but I know for a fact I could write certain types of servers acceptably well with it (I would prefer other tools, though).
Note that just because Ryah and co do not know how to write systems software, the basic principle is not invalidated. With some serious hacking to the node.js vm, it could be a viable competitor to Erlang.
This argument is incredibly weak, and basically self-refuting. But we have to repeat it every now and then.
> but it does mean that the process of telling a computer what to do and the process of telling a computer "here's some text, and here's some guidelines about how you should display it" don't inform each other.
You keep re-asserting this but haven't given any quantitive metrics for how it is different. You just keep saying it like I'm supposed to agree.
> Much as it pains me to do this, I cite Node.js as a counter example. People can and do write systems software using their understanding of Javascript as a basis. They may not do it well, but I know for a fact I could write certain types of servers acceptably well with it (I would prefer other tools, though).
Well, Javascript is a proper programming language. If you've got a web developer who knows Javascript, you've already got a web developer who knows programming. For the record I'm not making a distinction between systems software and higher-level programming here.
> You keep re-asserting this but haven't given any quantitive metrics for how it is different. You just keep saying it like I'm supposed to agree.
I think I've made my case pretty clearly (though this discussion is qualitative rather than quantitative). If you only know HTML and CSS, you aren't a "programmer" because you don't have the tools and knowledge it takes to write programs that do any nontrivial computation. If you only know Python, you don't have the tools and knowledge it takes to make an attractive static website. Of course, you can learn both, and having experience with computers makes learning one somewhat easier after you've learned the other.
> If you only know HTML and CSS, you aren't a "programmer" because you don't have the tools and knowledge it takes to write programs that do any nontrivial computation.
This is not a requirement for being a "programmer." It never has been.
> If you only know Python, you don't have the tools and knowledge it takes to make an attractive static website.
Nor, um, do you necessarily have the tools to do anything...
> This is not a requirement for being a "programmer." It never has been.
Programmers program computers. We call them programmers because they program. If you can't write programs, you're not a programmer. What other definition of "programmer" could you possibly be using?
Why won't you acknowledge that web development is not about HTML+CSS only? Why are you insisting that web developers know these technologies and not JavaScript, and in effect do not program?
You're obviously not very familiar with web development. The one who you have in mind is called designer. He's as you say, although it's still very hard and important job.
Web developers are programming all day long. They use JS almost exclusively with occasional excursions to HTML-land, without (in principle) ever touching CSS.
I'm a backend developer, so you will probably agree that I'm a programmer and I know what programming is. Just last week I had to fix/rewrite something on a frontend. It was a routine which retried an AJAX request until it either succeeded or failed a given amount of times, but with a twist - it cycled through a list of URLs while retrying. That's a very simple problem, I know, but I really felt as if I was programming while doing this - don't tell me I wasn't. And given JavaScript peculiarities it was full of surprises and overall a rather pleasant experience.
Now, design and programming are really two different skillsets. One is clearly programming, another is maybe-somewhat-with-HTML5-and-CSS3-almost-programming. You're confusing them both into one and so your conclusions are equally confused. To summarize: I know too little about design to really argue, but web development is, of course, programming.
Still you are not writing a program though. Sure you are using algorithms, data structures but it is not a program. You are writing a helloworld.py while the real program is /usr/bin/python. I don't think you could a text file program unless it actually runs. Thus, not a programmer. If I write some code on paper, is it a program too?
Difference is just a word, I believe main issue is despising scripting languages.
> Programmers program computers. We call them programmers because they program.
You've yet to give a definition of "program" I cannot satisfy with HTML, CSS and Javascript. The notion of "non-trivial" is not rigorous.
> What other definition of "programmer" could you possibly be using?
This is what I am wondering, because by any rational examination of what you've presented you've refuted your own claim. HTML+CSS is turing complete, which in practice means I can "program" arbitrary logic in it. It is a dialect of computer programming heavily focused on displaying content, but clearly it can do things.
Clearly explain to me: why is making a modern webpage any different from writing a simple modern Ruby script? Or a trivial iPhone app, for that matter? Open up a nib file and you'll see a serialized object graph, heavily biased towards the presentation and its structure. Callbacks are annotated into the system. But you could make a "dumb" iPhone app without ever writing a single line of code, using drag and drop components and GUI clicks. Oh my, that seems even less like programming, but in many cases it's indistinguishable from programming.
You really need to step back and ask yourself, "What is the actual difference here?" Your primary justification so far has been about people, but your original claim was about what "programming" is. If a "programmer" is someone who programs computers and we cannot cleanly and clearly explain why webdev is not programming, then what?
And to be honest, it's sort of patronizing and discouraging to new users. HTML+CSS+JS is the most widely deployed, used, programed, customized, and maintained programming environment in human history. Most people will find their way to the discipline via web browsers now, just as most kids in my childhood did via BASIC (also a victim of aspersions like what you cast).
Methods change and evolve. Environments change and evolve. Most of all, requirements change and evolve.
Of course it's interesting, but especially if you think of the context and a broader scope when you look beyond the immediate story. I'll start with the smallest scope and zoom out.
On its face, it's a person talking about their personal accomplishment in making a static HTML/CSS website--something that you seems minor to you as a professional that has been doing it for as as long as you have--but I think you forgot the original thrill you got when you first got your TRS-80 to work. Being able to see the thrill of a beginner again should remind you of your own personal thrills. To have more people be able to code, and to speak the same basic language is a good thing. How many times have you wished your manager knew just a bit of coding, so he's not whipping you on why you took 2 weeks to debug that concurrent code and ended up only changing one line?
At a broader level, many of us are programmers, but we're not programmers in a vacuum. Few of us make things only just for ourselves, and being able to be a better programmer often is being able to relate and empathize with users. In addition, seeing programming again from the eyes of a beginner will often teach you much about what is difficult and what is not, because you've been dulled to the pain for so long. Beginners remind us to rethink assumptions we have, and whether they're still valid.
And lastly, at the biggest scope, software is eating the world. Many of the middle class work and jobs are being replaced with automation, and the OP is a small drop in the river of people realizing this, and scrambling to learn. If you're an entrepreneur, this is especially interesting because there's a demand and a need for education for a different audience, and that is opportunity.
In reference to accessibility, I think it is important. I agree that hard stuff is hard. There are no shortcuts to mastering something. But it doesn't mean that getting started has to be hard. Many of the cultural influences on society nowadays has been made simply due to accessibility to technology. When you democratize a technology for the masses, sure you're going to get lots and lots of crap. But there's no limited warehouse on the internet, and we have the ability to float cream to the top with search, aggregators and other tools. Without this phenomenon, many of the blogs you read on a daily basis wouldn't be on HN for you. Many of the youtube videos that you learned something from or were entertained by wouldn't be there. Because, if accessibility isn't important, then "hey, just setup an Apache web server and FTP it there."
If accessibility isn't important, you might as well drive a car by timing the firing of the pistons, rather than stepping on the gas pedal.
As a beginner to programming I had enough self-awareness to realise that my achievements were of little to no interest to those with more ability and experience, and certainly would not have been worth publishing in a magazine (as the equivalent would have been at the time). This is 'Hacker news' - but these days the word 'Hacker' has been diluted in meaning to something that doesn't really mean 'hacking' any more.
The car metaphor is not a valid comparison - we are not talking about the operation of a tool, but gaining of skills in an area that requires both natural and learned abilities.
I think you identify as a programmer and hacker, and things that encroach on that identity--such as beginners doing html/css calling it programming--causes you discomfort. And that blinds you to the interesting things about this.
Of course it is. Driving is a skill. You only consider driving the operation of a tool rather than a skill because its accessibility is so good.
It causes me discomfort, yes, because if a beginner over-estimates what they are doing then they are in for more disappointment when they discover what they are really doing.
A friend told a story about a recent job interview for a devops position. He'd already had phone interviews and a breakfast chat with some engineers from a company with offices in his city, and all that was left was meeting the bigwigs at their office.
As the interview started, one of the executives asked, "So what programming languages do you use most often?" My friend replied, "Well, it depends on the job. PHP, Perl, Python, shell, ..." "Oh," the executive interrupted, "so you're not a programmer, you're a scripter!"
I understand and appreciate the sentiment that marking up text isn't programming, but it reminds me of the sort of mindset that says you're not a real programmer unless you're banging machine code into memory using the front panel of a MITS Altair 8800.
Although, I call the work itself "Python scripting" or "Shell scripting" so if only thing I was doing is those two then I would also call myself "Scripter".
I hope this doesn't sound like piling on, but I agree with your parallel to music and come to the opposite conclusion. Even a small amount of ability is better than none, and it's a good thing that the barriers to access and boundaries between professional and amateur are being blurred. Being untalented and unable to produce music anyone would pay for is a terrible reason to give up on making music.
Putting aside the payment issue, as that's a confusing one even for 'professionals' in this modern music world - I find it difficult to believe people will get much joy from something they have no talent at. More to the point, there is the opportunity cost; time is better spent on something they have more ability for, and hence will derive more enjoyment from.
Taken to an extreme, lack of talent that is disclosed in public causes people a lot of stress. Take a look at any kind of 'world's next best singer' program for many examples of this.
with 41 you are certainly NOT old! You just started to be very experienced. You comment and your annoyance about this "news" proves it. And I totally agree with you.
Her facebook friends are a sufficient audience to say a "well done".
Oh man, I remember when everyone looked down on web programmers and PHP monkeys. Hah. (I also did my much of my early programming on a trs-80, but mine was an obsolete tandy model 100 that I brought to school in the mid-90s, mostly to automate the 'guess and check' rote math homework.)
It used to be that there was a strong hierarchy. I know in the '90s and the first half of the '00s, you had the "real programmers" - the embedded and systems programmers... then the sysadmins, then your web programmers, then your web "designers" - with respect scaling in the obvious direction.
But, I think, this has shifted, especially in the HN world, where VC is very influential. The web programmers are now the 'serious programmers' - the valuable commodities, with designers also being fairly important. My people, the sysadmins are largely considered surplus population, and what you would have called 'real programmers' are now irrelevant old fogies that sometimes have interesting things to say.
(the question that looms in my mind is this: Will the construction of online CRUD apps be automated the same way that the construction of native CRUD apps were automated in the '90s? Will we have 'visual FoxPro' for the web? I mean, my stepfather, a long time user of such programs has shown me some of the rudimentary dot-net stuff... but it's not all the way there, as far as I can see, when it comes to whipping up a webapp as simply and easily as it whips up a native app.)
>This is lowering the bar on what stories are 'interesting', and - honestly - turns me off coming to HN because of the (for me) lower signal : noise ratio.
See, I've always thought of HN as a site more focused on the business side than the technical side. I mean, we do have some interesting technical articles, but ycombinator is about making money, and a lot of that is raising money. (my impression is that being young and goodlooking is an important part of raising money right now, but what do I know? I have yet to seriously attempt raising money.)
From the business perspective? learning how to, you know, use computers is pretty important and interesting.
>conversely, I don't think it's a bad thing that people who are less talented and less capable give up, and find something else they are better at and have more fun doing.
See, I kindof disagree. Sortof. in a way. You see, I think using computers is a bit like literacy. We all can't be Shakespeare, but even if you only get to 'spot is on the rug' well, you are way better off than otherwise.
Personally, I think that really basic programming should be taught in schools the way reading and writing is. Sure, most people aren't very good, but we put a hell of a lot of effort into getting folks to the 'spot is on the rug' level, and I think that most people would be better off if they, say, knew how to make a loop and an 'if' statement in basic.
I mean, certainly, most people can't be specialist programmers. But look at those CRUD app creators in the '90s, like FoxPro. Your ability to understand business processes was just as important, if not more important than your programming ability. We have the ability to make simple programming languages. We have the compute power to be able to run extremely inefficient code at reasonable speeds. Knowing just a little can help a whole lot.
IMO we've already seen the automation of web-CRUD. It used to be a lot of work to set up even a simple CRUD app on the web, now a brain-dead simple CRUD app is 15 minutes in skilled hands.
This differs from Visual FoxPro substantially. Our jobs are being automated, but instead of automating into the hands of an army of lay users, it's automating into the hands of a few skilled practitioners.
The productivity of the modern web programmer is at least an order of magnitude beyond where we were 10 years ago. What used to take a veritable army of CS majors takes 3 people and a fridge full of Red Bull.
Our tools and processes are getting better every day. So far "stuff that needs to be done" seems to be outpacing "increasing efficiency per programmer", but I doubt that will hold true forever.
>IMO we've already seen the automation of web-CRUD. It used to be a lot of work to set up even a simple CRUD app on the web, now a brain-dead simple CRUD app is 15 minutes in skilled hands.
hm. so what tools would a skilled developer use to, say, write a simple invoicing system in 15 minutes?
If I were an employer, I would be more impressed with the way the author responded to feedback/criticism and was able to improve her site on future iterations more so than I'd be impressed with the site itself (although it looks great).
I immediately thought that, too. I've worked with junior developers who, instead of learning from their mistakes, were defensive in code reviews and never took time to learn from their mistakes.
I've been with senior developers who, in code reviews, made a point of bringing down the junior devs and flogging them over some minor mistakes they made instead of fostering a learning environment :)
I'm 3ish months into my first post-graduation development job. It's really hard to go from school, where results counted, to an internship, where there was far more emphasis on getting shit done than how it was done (enterprise back office systems) to a professional software development job on a fully functional profitable web app.
It's not so much that the skillset that's required is different, though that's certainly part of it, it's that us junior devs are simply not used to having our code scrutinized very much. Sure, we've done some pair programming and group projects, but that was with other inexperienced undergrad/grad students, and it was difficult to just say "this code sucks, do it over" to an equal, just as much as it was difficult to hear that.
It's simply a mindset that is hard to break out of. A lot of us, myself included, were not ready for the reality that is a code review. I've gotten a lot more used to it, and I'm settling nicely into my role I think. Until now my mindset has been "make it work". I'm now transitioning to "make it work well. It's still hard to have to defend your code or methodology, or worse yet, during code review have the sudden realization that it is indefensible.
> or worse yet, during code review have the sudden realization that it is indefensible.
When all else - I mean google and more importantly talking with colleagues during breaks about what you're doing - to make you realize this is the point of code reviews. And it's good - after that realization you suddenly have one more known mistake under your belt which you won't make in future.
When I was young I practiced kendo. One of the things I learned then was that when a partner hits you, he's actually helping you realize your technique has a flaw. That's how you grow as a swordsman - and as a developer too.
Hi everyone, sorry it went down for a few minutes. I was hosting it on Dropbox but turns out that's not a good idea for HN traffic, so I switched to using a copy of it. Thanks for reading :)
The idiomatic way to create webpages, in this day and age, is to try to separate content of a page from how the browser presents it.
HTML is for the content and structure of a page. CSS is for controlling how it's displayed. The <center> tag is an HTML tag that only exists to control how a page is displayed.
In case you're wondering what to use instead, adding 'margin: auto;' as a css rule will do the trick.
Not bad. First design revision looks like back when css round corners and opacity became usable. Next one looks like the usual "I'm a designer" design. The grey one reminds me of Yahoo's early days when grey backgrounds were popular. The the last one is minimal and clean, so rather modern. Not a big fan of this particular green though.
I think it's great when people work with the feedback they get and decide to act on it.
I have to admit though I was a little surprised this post was about simple frontend design/HTML/CSS, I was expecting something more... techy.
> My first reaction was "WHO RIGHT CLICKED 'VIEW PAGE SOURCE'??? WHO DOES THAT???"
People with too much time on their hands I guess. There's a phenomenon (that I subscribe to) that includes helping people by pointing out mistakes (since humans learn by making mistakes) but often not providing guidance. Not providing guidance forces the person who made the mistake, to think about it and then fix it in their own way.
Its not the kindest form of helping, but its pretty darn effective.
if I run across a website, I'm not looking for source. But if a friend of mine was showing off her site specifically with a facebook post and I looked at it, I would absolutely look at the source to see what direction of knowledge they appeared to have picked up. Not hoping to complain of mistakes but just curious about a fellow web dez/dev.
Why do you guys pursume these posts get upvoted because they were written by women?
Personally, I read and upvoted this post because it was well written, interesting, and was interesting to see through the eyes of a total beginner. The author's gender was not a factor in my vote nor my opinion of the blog post. I am a woman myself.
Well, I'm a woman, too. And I don't think it is that impressive to make it to the front page. There are tons of submissions like that... But it seems a post like this is only upvoted if the poster is either a woman or at least only 10 years old.
I disagree. Franky, I think males would tend not to submit posts like this to HN, which is their loss. That she is female is not why this post was upvoted, it was upvoted because it was deemed to be of interest to the community.
I'm just seeing a pattern here. A friend posted my site here a while ago when I was starting programming. And it hit immediately the front page of HN. I received so many "I love you", "Marry me"-mails because of it. So I'm not exactly sure...
I'm a troll, so I've been joking around that HN is full of white knights for a while now (not your case in particular, don't remember that, but every other post written by a woman that hits the front page).
I didn't think anyone would send that sort of email, that's not even cool HN, just desperate.
I recently got to learning CSS, HTML and launched my own website using bootstrap that I host at home on a rinky dink Thinkpad X40. Would anyone be interested in seeing that? I'm a male though, so probably not huh? Also running an instance of gitlab, wordpress, owncloud and I had no prior knowledge of how apache worked about a month and a half ago.
I suspect a lot of people here would be interested in reading about your learning process. What they are not interested in is a post in which you try and say, "I am so awesome look at all I did."
Voyeuristic tendencies aside, a lot of experienced programmers find that stuff refreshing. Less experienced programmers often find inspiration to try new things.
A lovely read, but I must say, that last line gave me a little adrenaline rush.
What seemed like a first timer progressing, giving you the ahh, how cute (like a cat video), all ended for me on the last line, where she addressed me with my first name.
I immediately assumed it was someone who had used a facebook/google 0-day to get profile information and show off at the end, hitting you while you were at ease, reading this lovely progression... until I continued to read and figured she just had a friend called Nick :P Guess I'm to paranoid for the internet :)
Well, I made my first site in those days too and I know how you feel! It's really a joy when you make your first one and I know the pain that you feel when you are at the beginning!
There's a few things worth responding to in your comment, some technical and non-technical, but both important for beginners to keep in mind. I assume you know most of what I'm going to say, so I'm pretending a student asked this.
So, what's the problem with the <center> tag?
First, at the purely technical level, <center> was deprecated in HTML4.01 and is not part of HTML5 at all. As far as I know browsers will still render it fine, but it's technically not valid HTML5.
Second, <center> was deprecated along with other tags like <font>, <blink>, <big>, and <strike> because of a popular movement in the late 90s to encapsulate the logical and semantic structure of the document in HTML and the display structure in CSS. So, there's a case to me made for not using it as a Best Practice™, irrespective of the technical details about what browsers do or don't do, whether it's deprecated or not, etc.
Third, other people take your code as a reflection of what was going on inside your head when you wrote it. Your HTML and other code exists in a cultural milieu whether you like it or not. Potential employers will certainly read these sorts of things into your code, so if you care about that then you should care about what they'll think when they see you using the <center> tag.
In sociolinguistics there's an idea of the "prestige" of a dialect. For example, in the US, someone speaking Received Pronunciation (http://www.youtube.com/watch?v=bIemPxHSb6Q&t=6m28s) will be perceived as more educated and worldly while something speaking with a thick Appalachian accent (http://www.youtube.com/watch?v=03iwAY4KlIU) might be perceived as a hillbilly. It's relative to both the listener and the speaker, of course, so someone might think someone with an RP accent is a snob or find solidarity in in a shared-but-low-prestige identity (cf. http://www.youtube.com/watch?v=d7CzHFWsXQQ).
The <center> tag is a marker for a low prestige dialect of HTML authorship. The fact that the OP got mildly reprimanded for using it is actually a sign of that. Folks will take its use as a sign that the author is an amateur and doesn't know that much about HTML. And if she were to use a <font> tag, oh buddy -- let slip the dogs of war!
This isn't inherently true, of course. If I sat down and wrote some HTML using center tags I wouldn't suddenly know less about HTML, but that's the default presumption. This might not seem fair, but be honest: what would be your default, automatic reaction to someone using the <blink> or <marquee> tags non-ironically?
Like someone moving to a foreign country for the first time, you'll pay a price if you don't understand the parameters of the culture in which you've decided to participate. Even if you disagree with the "cultural" conclusions, e.g., you think <center> is fine in certain situations, you should have an idea of how other folks might take it. Otherwise you'll be surprised, confused, and perhaps a little hurt when folks push back.
Wow. That was a very in depth explanation. Thank you.
I'm currently working on a very HTML/JS heavy open source project and a co-developer had included some center and bold tags in the code. I will instead replace them with em/strong and inline:center; since I would not like our project to be judged by our absense of "best practice".
Going back to the semantic movement, strictly speaking em and strong should be used to encapsulate text with stress emphasis (when spoken) [0] and strong importance [1] respectively, and these properties would not necessarily be represented by italic and bold fonts (though, by default, they are).
A better choice for bold text that you don't think qualifies as "strong importance" would probably be the <b> tag, which denotes a "span of text offset from its surrounding content without conveying any extra emphasis or importance".
Watch that as well. The <i> and <b> tags are valid (except in some XHTML dialects) and are not interchangeable with <em> and <strong>. And don't forget <cite>, <var> and <dfn> either. There is more than one reason for text to be presented as italic or bold (by typographic convention), and emphasis is only one of them. On introducing a new term, you would use <dfn>; foreign words and phrases would use <i> with a lang attribute. It's all usually a jumble in a CMS (where the user entering the text is usually only concerned with the appearance), but if you're creating static pages or page fragments, it's best to keep in mind that the markup is metadata. (There is a lot of nineteenth-century literature that took on new meaning for me once I realized that half of the italicized words, which I assumed were emphasized, were just new imports that didn't "feel English" yet at the time.)
"The issue is not that it is "bad". It a matter of separation of concerns. This tag is intended to be used for presentation only. It has no other semantic meaning.
Since the move is to have presentation handled by CSS and HTML should only be used for semantic markup, the tag has been deprecated."
Am I the only person who wished she had kept the patterned background? I thought it was profoundly refreshing after years and years of smooth and flat design.
The thing is, finely textured backgrounds have been slowly creeping back into the web design world for some time now after the collapse of the organic noise craze touched off by Apple's popularization of the linen background. It's time for some coarse patterns!
I feel like my personal site should reject all current web design practice and just have Times with the occasional {h1} black on #ccc with #00f links. You'll never come up to the standard people expect in this world of ajax, tumblr and css3, so why not just do it CERN and Netscape style?
Dark green on yellow is actually the easiest to read, but that's garish.
> For about 15 minutes, I thought about keeping it the way it was since it was practical and straightforward, but I couldn't. Every time I looked at it I felt the urge to throw my computer out the window cause it was so UGLY.
Sad to see another soul giving in to the temptation of "over-designing" things. For fuck's sake, what's wrong with light text on a white/gray backgrounds? She could've tweaked the fonts, spacing and colors a bit, but people no longer do that these days, instead she went full steam and overdesigned the shit out of it and it still looks bad.
...she could've learn a bit of Javascript and called herself a programmer instead of masturbating with CSS and posting about it on Facebook.
If you're not a designer, don't overdo design because you're not gonna do it well! If you are a designer, just stop when it looks "good enough" and start working on something more interesting than a bloody website design! We're wasting waaay too much of our lives "designing" stuff, whether it's our garden or a blog, instead of actually putting things and information in order (no, just "search" is no good enough though I guess some day I'll be able to google for my keys) or actually building cool new things!
Does anyone know of that Adobe post and JS script to equalize the line length of text for aesthetic purposes? I remember if one line was full div width and the next line was only a couple words, it would insert line breaks to try to make both lines closer in width to one another.
This is about learning. Going through evolution of design from the ground up. Getting that joy that only comes when you do View Source and every single line is written by you.
Seconded, there should be a rule that says you must have tried to make everything included in bootstrap at least once yourself before your allowed to use it. Otherwise how will you learn?
That way when you do use it you'll have the knowledge to use it properly (and hopefully within moderation) well and you'll appreciate how much easier it makes life that much more!
I'd go so far as to say that after a certain level of experience, everyone should implement a compiler/interpreter. Automation is awesome, but it's better not to treat them as "magic".
It's a nice site for a non programmer although the font hurts my eyes a bit. Her server host must be thrilled now that her site probably overloaded their box with requests.
Thanks for the feedback! I was having a bit of a debate with myself on whether or not I should keep the font, since the punctuation kind of bugs me, so I'll definitely look into that.
Remember that OSX makes fonts a lot thicker so this font looks insanely thin on other OSs. I'm on linux with ubuntu font rendering which is somewhat thicker than windows and it looks to thin to me.
Usually this means that it will look impossibly thin on Windows.
Wow, I had absolutely no idea. I'm on a Macbook so I'll definitely be more mindful of that from now on. Thanks so much, this is super helpful. And thanks for the suggestion!
Because people voted for it. Seriously, what kind of explanation are you looking for?
It's a short chronicle of trial and error and growth, which is certainly consistent with the hacker ethos. And it's on a technical situation which undoubtedly many of us have been in.
I really don't understand why people feel the need to leave comments like this. If you didn't find it interesting, don't upvote it. Not everything on here needs to suit your definition of worthy.
To me, accessibility and approachability are two of the most important tenets of any discipline. I think it's important that we make sure there are more Tiffanies and less stories of overharsh criticism (eg. http://harthur.wordpress.com/2013/01/24/771/)
You might not think that everyone should learn how to program, and that's okay, I agree with you -- but at the very least, I think people should have the ability to learn what they want to learn, as ably and quickly as possible.