Minimum level of skill or ability to be a programmer/UX designer
November 21, 2012 8:57 AM   Subscribe

What is the minimum level of skill or ability to be a programmer/UX designer?

I am a hobbyist programmer working on various personal projects. Generally, I don't feel very capable relative to, say a professional web programmer or app designer because I lack formal training and basically figure things out as I go. But lately I've started to wonder whether I sell myself short. Obviously I know more than nothing but how would I know whether professional programming jobs are within my reach? Do I actually have the skills and talent to work on mobile apps, program web sites, or design databases? What is the minimum ability or level of expertise to pursue a job in programming, web designing, or UX?
posted by ChipT to Technology (11 answers total) 13 users marked this as a favorite
Why don't you look at some job postings for the types of things you would want to do, and compare what they are looking for with your current skillset? I think that is your best bet for knowing your potential in your local market.

That said, I work as a programmer in Canada, I've been in the industry for over 6 years, and I have never heard of anyone getting hired that didn't have some sort of formal training (either college or university diploma). If this is a career you want to pursue I would look in to getting some offical training/education.
posted by PuppetMcSockerson at 9:05 AM on November 21, 2012 [1 favorite]

I got my first position before I knew the language I was applying to code in. No training, just hobby playing around. The bar is pretty low for entry level. You have to be able to learn on the fly, and fix bugs. Note: all programming, by volume, is bug fixing. Don't fool yourself into thinking it's all fresh-code. It almost never is.

The bar is not low everywhere though. You cannot waltz into a six figure valley job without experience and skill. But a ton of places need warm bodies who can code. My first place was so shady and their code so awful that they would hire anyone who could stand it. As you improve, your own standards improve in parallel with your employability.
posted by ead at 9:07 AM on November 21, 2012 [6 favorites]

In the UK, most programming jobs require either a CS degree or commercial experience - often both. I suspect in some cases you could circumvent this with a solid portfolio that they find online - if some of your projects are live and of commercial quality, that might be sufficient to get your foot in the door.

If you have a very solid background in some unrelated field that requires software development, that could also be a very big asset.
posted by emilyw at 9:08 AM on November 21, 2012

Generally, I don't feel very capable relative to, say a professional web programmer or app designer because I lack formal training and basically figure things out as I go

I'm a professional software developer with a CS degree and most of my formal training was in areas that have little or no impact on what I actually do professionally. Almost everything important I know about programming I learned through writing code or reading up things myself informally. Figuring out things as you go is pretty much the essence of being a programmer because you're always going to be running into new things as you work on new projects and technology moves forward. Also, the quality of programmers overall varies greatly, you can take someone with a degree from a strong CS program and years of experience with a particular technology, and still find out that they actually have no idea how to write decent code.

Do I actually have the skills and talent to work on mobile apps, program web sites, or design databases?

Are you currently able to do those sorts of things in your hobby projects? If so, then yes you have the skills. If not, you can always work on more hobby projects until you acquire those skills.

What is the minimum ability or level of expertise to pursue a job in programming, web designing, or UX?

It depends on who actually is doing the hiring and what they are looking for. On paper at least, almost every programming job out there will be looking for someone who has X years of professional experience with Y and Z technologies, even if it doesn't make sense to actually require that. There was an old joke that when Java was becoming popular in the late 90s, there were a lot of job postings looking for senior Java developers with 10+ years of Java experience even though it was invented in 1995. You will be at a disadvantage if a potential employer is looking for credentials or professional experience you don't have, but on the other hand if you can prove that you know what you're doing and would be good at the job it's definitely possible to get your foot in the door somewhere.
posted by burnmp3s at 9:24 AM on November 21, 2012

how would I know whether professional programming jobs are within my reach?

Apply and/or interview for them and see if you get offers.

Do I actually have the skills and talent to work on mobile apps, program web sites, or design databases?

No one can say this without seeing your work thus far. Have you done these things? Have they been successful? Can they scale to many users? Is the code maintainable?

What is the minimum ability or level of expertise to pursue a job in programming, web designing, or UX?

Plenty of people come straight out of school with almost zero real-world skills and pretty much suck and still get jobs.

Here's an interview question I've asked people applying for web developer positions:
Say you have an arbitrary web page. It can contain any content, and you have no control over that content. You have to write a bit of javascript that will be included on this page that does the following: accepts a string, and then highlights every occurrence of that string on the page (like the "find" feature in your browser). Assume you need to write the implementation for a function with the signature:
function highlight(inputString)

Part 2: implement clearHighlight(), which will put the page back how it was before the highlighting.

Note that for both parts, you are not allowed to break behaviors that already exist in the page (for instance, you can't break DOM event handlers).

If you are not a javascript person, then you can really do most of this question in any other language with a DOM implementation, but if you are not a Javascript person, it will be hard to get a paid wed development position.
posted by tylerkaraszewski at 9:59 AM on November 21, 2012 [1 favorite]

I've been a web developer for 8 years now, I have no formal qualifications or training, I am entirely self-taught. In my first job I had no experience in the language they were using. (I had a couple of months PHP experience and they were an asp shop). It was a pretty shonky place but they were desperate, I'd just been emailing every local webshop I could find in the phone book and my email arrived shortly after the project manager had broken down in the office, crying because they were overbooked and understaffed - so really good timing. I walked straight out of that job into another and then another - I haven't been out of work for longer than a month. I've been very successfully self-employed for 5 years.

Do I actually have the skills and talent to work on mobile apps, program web sites, or design databases?
You don't need a job to do any of those things. Many successful apps and sites have been programmed by hobbyists in their spare time. If you want to know if you have the skills to do those things, try to do them and you'll have your answer.
posted by missmagenta at 11:31 AM on November 21, 2012 [1 favorite]

The only difference between you and a professional is that the professional is paid for their work.

In my experience, programming is odd in that you are rarely asked to do something that has been done before. If it has been done before, then there's probably a library for it and you don't need to implement much of anything. So a lot of people are "learning as they go" because they are rarely working on something that they have experience in.

It is very, very unlikely as an entry level employee that you will have any experience with what the company uses. If the job posting says "Java", they really mean "a bunch of Java libraries that you've never heard of, plus some ones we've built in-house".

It is a different question if you are any good at it. Software is notorious for being implemented by paid unskilled amateurs - The Daily WTF is a site that summarizes their incompetence. However, all these are all stories about code that has both been written by professionals and has been running.

When I'm interviewing someone with no experience / no degree, I wonder: has this person released anything? Does their code have people who are using it?

"Personal projects" means to me "has never released". Code doesn't exist in a vacuum. It is usually written for a express purpose or person that is not the developer. If not - then it is meaningless. You could have written Windows in your spare time, but if no one is using your operating system, it is no accomplishment. Windows is impressive because millions of people are using it [and paying for it], not because it is technologically superior.
posted by meowzilla at 11:38 AM on November 21, 2012 [1 favorite]

In case "release" in my earlier comment sounds daunting, there are much easier alternatives than the software rack at the supermarket:

- Open source projects / code repositories (Sourceforge, GitHub)
- Web projects using LAMP or similar - hosting is cheap
- Android apps (sideload APKs, can use emulator)

These are all ways you can demonstrate skill to a potential employer.
posted by meowzilla at 12:14 PM on November 21, 2012

I worked as a UI/UX designer (NOT a programmer) for about 3 years. I have a degree in English & film. I had been a CS major for one year, so I had a very basic knowledge of how algorithms work, but no formal training in any kind of web programming languages. I basically graduated from a liberal arts school at precisely the right time with enough graphic design software knowledge and html knowledge to work my way up through web content positions into my company's IT department. I supplemented what I knew with some programming training.

I left the field and have from time-to-time thought about going back. But I have NO expectation of being able to do so without gaining some formal training/certifications/something because the industry has changed SO much since the late 90s when I initially entered it. Back then, there was no such thing as a college degree in this stuff--and that's just not the case now.
posted by pixiecrinkle at 12:46 PM on November 21, 2012 [1 favorite]

This question is weird in that it asks about two (or three, depending on your point of view) totally different things. Being a UX person is nothing like being a developer except that you work together: the work and skillset are pretty much 100 percent different. I got into UX with no formal training and I know programmers who don't even have college degrees but are employed by Apple. BUT that is because we are super into what we do. If you don't know which you prefer between the two, I strongly recommend doing some research and finding the one that appeals to you, then coming back with a more targeted question.
posted by dame at 1:19 PM on November 21, 2012 [3 favorites]

I can only speak for UX, but you do NOT need to know how to program - UX is about understanding people, not software.

That said, it is extremely useful for UX professionals to understand the fundamentals of programming, whether it be for a web or native environment. It helps you understand the possibilities and also helps to call people out on their BS when they say it's "too hard" to do something that makes a user's life easier. You are also a more valuable candidate for jobs if you can make some basic prototypes and mockups.

If you are a hobbyist programmer and you enjoy programming, try exploring a particular domain - native mobile, web, native desktop, etc - in more detail. Find out what languages they use and see what is a good fit for you. From there, you can come back here and I think you can then get more specific details about exactly what kind of formal training you need if at all.
posted by like_neon at 4:48 AM on November 22, 2012 [2 favorites]

« Older Invented language vs. familiar words in fiction?   |   How would a bird strike on landing play out? Newer »
This thread is closed to new comments.