I'm a business guy, and it's about time I learned to code
coryliu.com
coryliu.com
Fuel to the fire, thank you.
However, getting into it will be priceless. You'll hopefully develop more of an insight into how tough a given problem is, or isn't. Developers will be less able to BS you (e.g. "we should just rewrite it from scratch"). It'll reduce your risks and help you to interview developers. Hey, and you're young so you definitely have time to learn any skill you want, given enough effort. At 50, more likely a waste of your time. In your 20's (my assumption from your pic) - why not. Good luck.
Btw, I'm a long-time developer that has a post-grad business degree and keeps my foot firmly in both camps! Keeping up with the technical aspects takes up a lot of time, especially if I want to build something useful in a given area.
It's not because you're a business guy that you'll probably never build anything useful, but because you haven't invested the time most programmers-of-useful-software have. Programming skill is mainly a function of time with an intelligence multiplier. The number of things within the world of programming that you don't know you don't know, is staggering. And you need to know a large amount of inter-related pieces of knowledge to build anything useful.
As an example, I recently built a 'web application' which will send a student an email when a college course that they want opens up at Virginia Tech (http://hokienotify.me). I haven't worked on it in a while, but it took me about three days to write from conception to what you see now.
Let me list the technologies/bodies of knowledge that are involved in this relatively simple application.
- Front end
- HTML/CSS/jQuery (Javascript)
- PHP
- Form validation and other data sanitation
- UX/UI
- Back end
- Python
- Regular Expressions
- MySQL
- Linux server administration
- Apache
- Bash scripting
- Cron
It only took me three days to write, but in reality, it took me 10 years.To reiterate, it's not because you're a business guy, but because it's a long journey from "Javascript is like Java but simpler" to a real, useful piece of software.
Edit: I hope I'm not being discouraging. Programming is fun, and you should definitely continue with it. As you work at it, you get better. Good luck!
Maybe because of that one line, you assumed I was an idiot (only partially true!). Maybe its because you don't know I work in an MVC framework building web pages everyday, or that I admin our servers through SSH. Or that I've built MySQL tables, PHP contact forms, and even used PayPal's API once to forward customers to a download page where they could retrieve the product they paid for.
So yeah, you're pretty damned discouraging. That's how I feel unfortunately when I read some of these comments on HN.
The reason I outlined the complexities and difficulties of building software is because you asked why byoung2 said that you'd probably never build something useful. The reason is that most likely you'll give up before long. If you stick with it though, there's absolutely no reason whatsoever that you can't be a great programmer.
I've never taken a formal class in programming. I am proud of what I know and so I do have an ego when it comes to programming. But I am also being honest with you. It's a long road to becoming a good programmer. It might be easier and it might be expedited by the fact that you're older, but it still takes a long time (which can be frustrating!). As I said, good luck!
To fully utilize HTML5, I’ll need to know Javascript. And apparently, Javascript is similar and simpler than Java.
Java is infinitely simpler than Javascript.
Of course, I did it to the other way. PHP/Python --> C, and that wasn't that bad either. The big thing he needs is to learn the overall concepts using a good language; the choice of language here is not that big of a deal.
That's why I put "apparently" :D
We all have to start somewhere.
It intrigues me, though, that pretty much everyone I've seen come from a non-coding background who wants to enter this inner sanctum has chosen an entirely different platform and language. I know of people trying this via RoR, Processing, PHP, Python, C++, jQuery and now Java. Good reasons for all, bad reasons for some, and mostly down to who they know and what advice they gave.
I can't help but wonder if there is a Better Way. Even as a coder I find some languages/platforms require a lot of banging your head against incomprehensible documentation and Simon Says tutorials. I've been totally nostalgic lately for the BBC BASIC days, when stuff was so easy to just see working straight away without a day-long installation headache and platform wrangling and the doubt you picked the wrong one to learn. I'd love to bring this feeling of magic back.
The biggest difference between programming then and now is the size of our problems, and consequently, the number of abstraction tools in our languages. But there is a relatively small set of abstractions known to work well, and a substantial subset of them crop up in almost all languages. Learning all of a Python or Ruby or Javascript, and knowing how to use it well and in a structured way, would cover a good, say, 60% of various concepts of imperative, functional and object-oriented programming, such that you could move to any of the others (in that set) without much trouble.
Totally agree, and my issue is more that these languages are too linked to the environment in which they run - step 1 of learning to code shouldn't be wrestling with install files and stacks and tools (http://tryruby.org is a great exception). Secondly, a lot of the way they are taught does not actually teach you the abstractions but expects you to parrot code and infer the abstractions as you go along.
Don't get me wrong, I don't want to bring back BASIC as a platform for today, though it'd be fun to see it happen.
Sean
I too took the decision to learn to code earlier this year, it was actually a re-learning process as I've coded before(about 20 years ago). Nonetheless i still had to learn the new language.
Well, six months later i can build a fairly complex web app in about a month which i think it's great for my skills. Now I need to start doing some freelance work to pay the bills while building my personal projects.
Just don't give up when things don't seem to move. Ask questions, go to the forums, stackoverflow, etc.
Best of luck!
I, and everyone else here, totally understand your goal, but what you're trying to do is epic. A better goal would be to find a person, who is experienced, cross platform, and honest, who can guide you through your issues.
The idea that you are going to handle these things on yourself is just a non-starter. Or, aka, how corporate north america runs, except this way, its you, not the shareholders who have to pay for it.
I'm learning Java because I want to learn how to code. I'm not going to continue to completely rely on others to build things for me.
I think any sufficiently intelligent and motivated person can learn to code at least at a modest level. Just remember that its going to be slow, frustrating and painful. Be sure not to be caught off guard. A frustrating problem that comes at you all of a sudden, can dry your enthusiasm really fast, be sure not to let that stop you. You are supposed to feel pain and frustration, you're brain would rather watch bad TV, or browse reddit or something. Just like when you exercise your muscles ache, because they'd rather you lie on your couch with a bag of chips and a can of soda. Pain is good, it means you are learning.
I firmly believe that the best (and maybe only) way to learn programming by yourself (and get good at it) is to get yourself a good book or tutorial (like this one http://pragprog.com/titles/eband3/hello-android) and set aside an entire weekend Friday-Sunday to go through the entire book (and actually type out all of the code).
Next, come up with an idea of moderate complexity that you think would be fun/useful/maybe profitable (e.g. not a game, maybe a client for some web service like Twitter or Shopify) and spend a couple of weeks working on it until it works. Then you'll be a programmer!
P.S. This is the method I used to learn Ruby on Rails and iPhone development, and now I do both of them for a living :)
On the plus side, I'm in the market for an Android phone, and it would be perfect to be able to hack things onto it right away.
I learnt BASIC at school a long time ago, and I know my way around html and very basic php.
I would want to make basic webapps that make use of databases
Once you've learned the basic programming concepts you will be in a much better position to decide what to learn next. Or grab one of the two open source distributions of CF and build your company.