16 Comments

  1. David McCan
    · Reply

    Great share. I think you have to be willing to break things and live with a fair amount of frustration, but you feel good when it all works. We have all learned a lot from WordPress by jumping in and figuring it out, with help from our fiends and the community.

    Report

  2. Theo Dubeux
    · Reply

    The great sociologist Manuel Castells says exactly that: schools keep working exactly as in Middle age. A perfectly aligned excerpt from an interview:

    Report

  3. indusrobe
    · Reply

    This is a fantastic resource. I believe you must be willing to break things and live with a fair lot of aggravation, but it is rewarding when everything comes together. By stepping in and figuring it out with the support of our friends and the community, we’ve all learned a lot about WordPress.

    Report

  4. Chad Cloman
    · Reply

    I have a Computer Science degree and would like to comment.

    The points you make are excellent. I had a EE professor in college who got the class a discount at a local electronics store so it would be easier to experiment with real circuits. I also interned for a year or so, and that practical experience was quite helpful.

    Yet there’s something that people who writes on this subject seems to miss. The purpose of an actual Computer Science degree (or even Software Engineering) is not to teach programming languages. That’s certainly a part of the degree program, but it’s only a means to an end.

    A Computer Science degree gives you a core foundation for the entire field. People who don’t have a degree typically don’t realize they’re missing it, but I’ve seen it manifest every so often. The first time was while I was an intern. One of the programmers described how they’d had a severe problem using fork/exec to spawn another process. They didn’t fully understand how fork() worked, and it brought the system to a standstill. As she explained how they discovered and fixed the problem, my thought was I’d learned about that in my Systems Programming class and I wondered how they hadn’t known.

    I was trained on sorting, linked lists, hashes, curve fitting, recursion, grammars, and data structures. While these aren’t nearly as important as they used to be, due to the extensive libraries of modern programming languages, that knowledge gives me an understanding of what’s actually going on in the code and helps with debugging, optimization, etc. I once decreased the execution speed of an I/O-bound program by 90%, simply by increasing the size of the fwrite() buffer (run time went from 45 minutes to 4½ minutes). Not sure I’d have been able to figure that out without the solid understanding of I/O fundamentals I’d received from my classes.

    Also, since I was trained in programming language fundamentals, learning a new language is trivial. I can be up and running just by reading a book, and sometimes even without that. As you noted in the article, of course, such knowledge is useless unless it’s refined and expanded by actual coding. And modifying someone else’s code is a great way to learn. But it baffles me when people think that learning a new language is a difficult task. Note: let me make it very clear that I do not consider myself superior to non-degree programmers; rather, it’s that many things are easier because I received the foundational skills in college. People who learn programming in a specific language, environment, or project often have a partial foundation. How this foundation manifests in me is that I consider all the major modern programming languages (C++, C#, Java, Python, JavaScript, etc.) to be essentially the same — a variant of C with some differences in syntax and library functions.

    Another thing that baffles me is front-end vs. back-end specialization. It’s all just programming. I’m as comfortable with database normalization as I am with CSS3. Again, it’s that foundation.

    I have a sense of ease and comfort regarding computer skills that seems to be less prevalent in those without a degree. Anyone with a Computer Science degree who is reading this is probably nodding their head in agreement and smiling.

    I’ve seen a number of articles like this one, and they’re always written by people who don’t have have a Computer Science degree and are explaining how a degree isn’t necessary. And in many cases the non-degree folks are very, very good. But my experience is that the lack of foundational knowledge tends to manifest in subtle ways. I’ve noticed it over the course of my career. I don’t think non-degree people can really see it, because to them it’s normal.

    I wholeheartedly agree it’s not necessary to have a Computer Science degree in order to be an excellent programmer, nor is a degree suitable or preferable for everyone. But it certainly makes things easier and enhances your versatility and flexibility. I think this is why some larger companies still place value on a degree and ask interviewees how to do things like invert a binary tree.

    I believe the optimal situation is to have both a degree and the practical open-source experience discussed in this article. I got my PHP chops, for instance, by heavily customizing the open source osCommerce program. I learned HTML and CSS by creating websites. I learned SQL by creating and manipulating MySQL databases and working on existing database projects. I learned WordPress by creating my own theme and serving as webmaster for a couple WordPress sites. I was thrown into the deep end of the C# pool and managed to keep my head above water as I learned to swim.

    Anyway, thanks for letting me talk. Hope this helps you understand where we degree folks are coming from.

    Report

    • Justin Tadlock
      · Reply

      Thank you for sharing your experience, Chad. And for the reasoned response.

      Another thing that baffles me is front-end vs. back-end specialization. It’s all just programming. I’m as comfortable with database normalization as I am with CSS3.

      That has always baffled me too. I like it when folks say they specialize in solving problems.

      Report

  5. David Coveney
    · Reply

    Chad Cloman expresses it beautifully above.

    There’s also the problem that us oldies without degrees learned quite close to the metal, and moved up the stack as time passed. So I’ve done everything from raw machine code, to assembler, BASIC, PL/I, C, Python and PHP amongst many others. I got to grow as the industry grew. A newbie to the industry doesn’t have that luxury of spending years solving how to make something reasonably interesting work quickly on a microprocessor by directly addressing the graphics memory. I was on a huge government project in 2001 and even then, it was amazing how few people who’d come through the bootcamp approach pioneered by the big consultancies had heard of bitwise operators. Which mostly didn’t matter, except on the day when something couldn’t be made to work because it relied on being able to find out the value of a single bit stored somewhere. The dev who’d done that was solving a problem for some low level compiled code to run super-fast, and he didn’t honestly care that later devs working way up on the UI would struggle. But hey, every coder knows bitwise operators, no? Well… actually no. Surprisingly few do. But because I’m old and coded from 1983 on, I kind of had to know that stuff in order to modify sprites on the screen.

    So us oldies have to realise that the industry is not at all in the same place as it was in when we stepped in. A degree can help people know a lot of this and stop them making mad schemas or storing PHP objects in the database.

    Report

    • Chad Cloman
      · Reply

      Excellent example, David Coveney!

      I started on the Apple II series of computers. The reference manual included a fold-out schematic of the motherboard, which I incrementally learned to understand during the years I was in high school. Close to the metal indeed!

      The stories we have to tell…

      Report

  6. Bridget M Willard
    · Reply

    Matt’s quote makes total sense in his context — the best way to learn a technology. The article title, however, is a bit misleading. Though college degrees aren’t always the path for everyone, I’m certainly happy to have mine as it’s helped my career tremendously.

    My degree is BA Liberal Studies with an Emphasis in Psychology which I used to become a licensed multiple subjects teacher in California. This helped me contribute to WordPress in a better way — leading the Make WordPress Marketing Team for over two years.

    Computer science is a core engineering degree that may teach you how to think in the context of the whole but isn’t mutually exclusive to learning technologies that evolve quickly — like Javascript.

    Though I appreciate the sentiment of this article, it’s a little bit discouraging and slightly dismissive to those of us who have degrees and are considering master’s degrees later in life.

    Though we all know that our skills learned on the job and during Open Source contributions are valuable, they don’t always translate well on a resumé/CV to get the best possible position, furthering our career and economic independence.

    Report

    • Justin Tadlock
      · Reply

      I have a degree as well and would never be dismissive of the idea of earning one. I may even get my master’s and doctorate down the line. Education, through school or otherwise, is always valuable. We should never stop pursuing it.

      The title got people talking and, perhaps, reading the article, so I’d call that a success. Writing perfect headlines is the toughest part of the job, and no matter which direction you go, you never end up pleasing everyone. Or, you make it so generic that no one reads the article. I won’t quibble over it anymore than that though.

      Report

  7. Steven Gliebe
    · Reply

    In 2002, two days into my second semester at community college, I took one look at the website my web design instructor’s prior class designed for the local nature center and dropped out. It was clear I was on a slow path to mediocrity. All the training I needed was free online, at my own pace. And applying what I was learning in the real world often came with a payment!

    Nearly all the web developers I know with a degree have it in a field not directly related to what they are doing for a living. They essentially ran up a college bill while messing around for fun until they got good enough to make a living out of it. I’ve always been amazed at the opportunities offered by a computer with Internet access and the ability to speak English.

    Technical schools need to make a serious comeback. A university education is definitely not the right path for every person or every career. It’s nuts how expensive the college experience now is. I feel like young people are being taken advantage of. The schools would have you believe a six figure education is actually worth paying for career X, Y or Z when those jobs, practically speaking, either don’t really exist or don’t provide a justified return on investment.

    “Study” in Europe, acronym-shaped swimming pools, artificial ski slopes… Now I’m ranting. ;)

    Report

    • Chad Cloman
      · Reply

      You make a good point about the variety of degrees in the programming field.

      I’ve noticed a number of programmers with a B.S. in Mathematics. Makes sense because you pretty much have to have a Ph.D. to make money in that field.

      Once had a boss with a Ph.D. in music. Asked him why he made the switch to programming. He said, “The grants ran out.”

      Report

  8. Russell Aaron
    · Reply

    I found WordPress shortly after Myspace. The two set me up for life. I built my first WordPress blog to teach people how to “PIMP OUT” their myspace profile. I was making money and building friendships. After my

    Most of my blog posts ended in “Paste this code in the About Me Section”. Which is similar to the WordPress tutorials of today that end with “Paste this code in your themes functions.php file.”

    Report

  9. Grzegorz
    · Reply

    A great read, thanks. My experience is slightly different, I would argue that university education – as I experienced it myself last year – is largely obsolete. I believe the best thing besides the paper is probably a wide variety of topics a person gets introduced to which can help make a decision on what to focus on and set a course for the future.
    I was excited about going to university as a working adult and it has been many years since my formal education ended. At the moment I made the decision, I was already after an online course for a software tester, and I was working for several months on a fascinating course in Unreal Engine and C++, as my dream was always to get into gamedev. I enrolled on a C++ course at a major state university in my city, thinking I might be up to the task at Uni now, with the online courses I was doing in my spare time.
    However, the university course was a huge disappointment for a number of reasons. The teachers lacked both communication skills and expertise, especially when compared to the online counterparts. The courses were poorly organized, jumping from one topic to another without much sense or flow. We constantly heard we had to do things on our own, which was fair, but I would expect to receive SOME knowledge in the classroom, instead of just being told to look things up at home. I mean, I was used to learning things from the internet and it worked great, but I was expecting to be also taught something at Uni by professionals. I had the impression I was just wasting my time. I decided to quit Uni after the first semester and get my money back. I learned far more in the same time by doing cheap, high quality, well organized online courses than with people that had degrees at the university. When I reach out to my classmates after more than a year now, all of them working adults as well, I am happy with the decision I made. To sum up, again, I would say that a uni degree will probably help choose the direction, but for real, practical knowledge, everything is available online.

    Report

  10. Michael Edwin
    · Reply

    Colleges/University degrees aren’t so much about the piece of paper you earn or the education but, rather, the life-long connections and friendship you’ll make and the people you meet, fraternities/sororities, etc. This is what most people really don’t get and this is the true (hidden) value of the experience.

    You know how many contracts I’ve picked up pretty much by default because I was friends with the person back in University? So, yes. go ahead and skip college/university. Stay in your lane. That’s exactly what the powers that be want you to do.

    Report

    • Steven Gliebe
      · Reply

      Some college educations make sense and some don’t. It depends what a person wants to do. There are ways for aspiring programmers to network and make friends that don’t cost anywhere near six figures and four years. The important thing is for young people and their parents to be discerning.

      Report

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: