Author Topic: Learning to Write Code (or, Should I become a computer programmer?)  (Read 12040 times)

Overflow

  • Stubble
  • **
  • Posts: 155
  • Age: 34
  • Location: Mitten
Hello MMM world,

Considering my future job prospects (a normal thing to do at the beginning of a new year).

What was surprising to me (may not be surprising to anyone else) is the tremendous demand for computer programmers. I plowed through numerous company job boards and it seemed like everyone was looking for different types of programmers.

I have zero background in this field. Surely there are plenty of Mustachian programmers out there. Would anyone be willing to explain:
1) Is this field really as vibrant and in demand as it appears?
2) Anecdotally, my impression is that programmers are quite fulfilled in their work. True?
3) How would one even begin to learn programming? It feels like such a vast field.
4) Should I become a programmer? (this one maybe the toughest to answer)

Thoughts? Help?

MichaelB

  • Stubble
  • **
  • Posts: 130
  • Age: 37
  • Location: Charlotte, NC
  • FIRE goal: April 2032
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #1 on: January 03, 2017, 11:41:13 AM »
Posting to follow--I would interested in an answer to this as well.

What is the best way to learn? Any resources that Mustachians can recommend?

Gondolin

  • Pencil Stache
  • ****
  • Posts: 577
  • Location: Northern VA
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #2 on: January 03, 2017, 12:42:17 PM »
Quote
1) Is this field really as vibrant and in demand as it appears?

Yes. Along with nursing/non-MD healthcare, SW programming/development and cyber defense are *the* most in-demand jobs. Also, the proliferation of computing has increased the need for SW proficiency in most professions - especially those that require any kind of data analytics.

Quote
2) Anecdotally, my impression is that programmers are quite fulfilled in their work. True?

As usual, this depends entirely on the person, the projects they're engaged on and their work environment. Programming can be great fun! It can also be a sloppy, mismanaged development hell.

Quote
3) How would one even begin to learn programming? It feels like such a vast field.

Code Academy. Udemy. LearnPythonTheHardWay. RubyOnRails. Coursera. Much of programming can be learned online and, to a great degree, self-taught. Almost any language you might want to learn will have multiple (free) online resources for you to use. As for *what* to start with...well, pick a language (I suggest Python, Java or C++) and learn the basics. After that you can branch out to other aspects of the profession. Keep in mind that there is so much more to the field than merely programming. Being 'in software' is like being 'an artist'. One guy is painting watercolors while another is sculpting in bronze. They're both making art but, the tools, techniques, and end products vary dramatically.

Quote
4) Should I become a programmer? (this one maybe the toughest to answer)

Hard to say without any background. The good news is that you can get a background and see if anything speaks to you, on your own for free. Start there and see if you enjoy it. The bad news is that many poorly qualified candidates are flocking to the field because they perceive it as a quick road to higher salaries. Unless you're willing and able to do something interesting or gain real skill, you'll have trouble standing out from the other 40,000 20-somethings looking to get into the field.

Beware any for-profit certificate program that claims it will turn you into a SW developer with a 12-18 week crash course. It won't. At least, it won't qualify you for those high-paying Google/Apple/Microsoft/Amazon gigs that the admission brochure sold you.

maizefolk

  • Walrus Stache
  • *******
  • Posts: 7434
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #3 on: January 03, 2017, 01:40:20 PM »
Another vote for something like CodeAcademy. These sorts of online tools are a great way to start getting exposed to a language and see if programming starts to become a fun challenge for you, or just makes you miserable. In my experience it's essentially impossible to tell who will fall into what camp without just having them sit down and pay with a language like Python for a couple of weeks.

Quote
4) Should I become a programmer? (this one maybe the toughest to answer)

What do you do for a living right now? Honestly, I think domain expertise in X + computer programming tends to lead to more interesting, higher paying, and more secure jobs than looking for work as a pure programmer (particularly one without years of experience learning lots of esoteric things that brand new college CS grads won't know).

Dave1442397

  • Handlebar Stache
  • *****
  • Posts: 1653
  • Location: NJ
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #4 on: January 03, 2017, 06:47:07 PM »
I've been a programmer for 30 years.

I started with BASIC, then HEX machine code, and then joined the mainframe world. I have around 20 years of COBOL/CICS/DB2/VSAM/JCL and just over 6 years in my current FORTRAN/DCL position, currently on VMS machines and transitioning to Linux. If none of that sounds familiar, don't worry about it :)

I'm just getting into Python, but it's easy enough to pick it up, especially with all the examples available online.

For me, the best way to learn has always been to jump in and start coding, and then debugging, which is where you really figure things out. If you're a logical thinker and like problem solving, then you'll probably like coding.

I work on a mutual fund subaccounting system, and last time someone counted, we had over 18,000,000 lines of code. It's great, because you're always looking at something new (even if it was written in 1990) and it keeps things interesting.

From a business perspective, the group I'm in has found that hiring someone straight out of school is pretty much useless. We have a group of said people who were foisted on us, and we find that their 'help' usually means that it takes 3 times longer to get things done. One time to write pseudocode for them, a second time to correct their code so that they can fix the problems, and then the third time, when we toss what they did and just do it ourselves. You'd be amazed how far some common sense and an ability to ask questions will take you. And take notes. Asking a question once or twice is fine - asking the same question over and over does not enhance your reputation.

As for business sectors, I don't know... The big financial companies are all about outsourcing, even if it doesn't work. They can hire three offshore people for one of us, and bottom line is all they look at. They seem happy to let the product quality slide as long as quarterly figures (cost cutting) look good. I don't know if I'd even have a job if one of our biggest clients hadn't found out about all the layoffs and threatened to pull their account if it didn't stop.

The cyber-security field seems like a growing field, and all sorts of automation and medical software seem to be growing too.

You can hunt around for the next big thing and jump in early, if you have the ability to go where the market is. My brother-in-law happened to get into SAP back in the early '90s. It was totally by chance. His company asked for volunteers to go to Germany for training, and off he went. The company didn't realize (they figured it out soon enough!) that those trainees would be headhunted instantly once other companies found out about them.

My BIL went from making $60k a year to around $600k a year within a few months. He was smart, too. He and my sister rented an apartment and drove a couple of used Toyotas. When the market got saturated with newly trained programmers and rates dropped back to normal (still over $100k/yr) they were able to pay cash for their house and allow my sister to stay home with their kids.

There are other things to watch out for in the industry. Some companies will require you to be on call, and for some of them, that means 24x7 (usually with no compensation). I have successfully avoided that since the late '90s.

You may be offered a management spot, and again, you may or may not want to go in that direction. My immediate manager should, in my estimation, make at least four times what I do, considering his workload. I don't know what he actually makes, but I'd be surprised if it was more than 1.5 times my salary. His wife was hoping he'd be laid off last year so that he'd get a break :)

Would I do it again? Yes, I think so. Would I keep doing it if someone handed me $10,000,000 tomorrow? Nope. It's still a job, even if it is a fun job.

HoundDog

  • 5 O'Clock Shadow
  • *
  • Posts: 20
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #5 on: January 03, 2017, 07:13:34 PM »
Can anyone comment on how an older candidate might fare in this field -- say, in their early 40s? I've thought about giving it a try, but I'd be that age by the time I got trained. I've heard there's tons of age discrimination. However, I have no desire to work in Silicon Valley or any of the "cool" places associated with startups. Would work in Middle America or the South at a plain old boring company.

Dave1442397

  • Handlebar Stache
  • *****
  • Posts: 1653
  • Location: NJ
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #6 on: January 03, 2017, 07:42:23 PM »
Can anyone comment on how an older candidate might fare in this field -- say, in their early 40s? I've thought about giving it a try, but I'd be that age by the time I got trained. I've heard there's tons of age discrimination. However, I have no desire to work in Silicon Valley or any of the "cool" places associated with startups. Would work in Middle America or the South at a plain old boring company.

Back in 1990, when I started at a big corporation, we had two people in our entry level training class who were in their mid-forties. They had both come from jobs managing grocery stores. As long as they passed the interviews and the aptitude test, age was not an issue. I'd say 90% of us were under 25 at the time.

The Silicon Valley hipsters might not welcome you, but the people I work for value experience.

Lagom

  • Handlebar Stache
  • *****
  • Posts: 1258
  • Age: 40
  • Location: SF Bay Area
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #7 on: January 03, 2017, 09:25:08 PM »
I am seriously considering this as well. Was looking hard at bootcamps but very recently (as in today!) decided to give this a full bore self-education attempt first. Thinking 20-30 hours/week (on top of my non-tech full time job) of study time for at least 4-6 months before I reassess.

For free resources, so far the two best ones I have found are the Odin Project and Free Code Camp, which both seem fairly highly regarded from my research. Maybe not guaranteed to land you a job highly regarded, but they do seem to teach marketable skills and good coding practices. The Odin Project emulates a bootcamp curriculum but is self study (though there is a community surrounding it that seems at least somewhat active) and teaches full stack Ruby/Rails with a healthy side of Javascript. Free Code Camp has a similar approach but is full stack Javascript (seems to be the hottest thing atm) and has an interesting component where if you get far enough along the track they offer opportunities to do real life projects for nonprofits as a way to build your portfolio.

Right now I am pursuing the Odin project with the modifications suggested here (http://everydayutilitarian.com/essays/notes-on-the-odin-project/). I think it will take less time to complete than Free Code Camp, which I may do next. Or I may branch off into other self study topics (Python, Java, and Swift are all of interest to me for different reasons), or revisit the bootcamp idea (the more experience you have going into them, the more ambitious you can be with your projects which in turn makes you better able to take advantage of their job support offerings). Really looking forward to it and I think in addition to saving money, self-study seems like it should be even more satisfying in the end.

On a side note, if anyone reading this is in the SF Bay Area (especially South Bay) and is either an experienced developer willing to help or another fellow aspirant, I would love to chat. Feel free to message me!

Mrs. S

  • Stubble
  • **
  • Posts: 111
    • Royally Frugal
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #8 on: January 03, 2017, 10:44:49 PM »
Whenever I get irritated with my day job coding is what i turn to. The problem is not being consistent and keeping the practice up. both Codecademy and the Odin projects are great.
I have given a lot of thought to changing jobs but right now I like the end goal I am working for. I'll be 31 in a  month's time and the goal of FIRE by 40 right now seems feasible. Is anyone looking at coding to generate some post FIRE income with side jobs? Has anyone achieved that?

obstinate

  • Handlebar Stache
  • *****
  • Posts: 1155
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #9 on: January 03, 2017, 11:20:35 PM »
What was surprising to me (may not be surprising to anyone else) is the tremendous demand for computer programmers. I plowed through numerous company job boards and it seemed like everyone was looking for different types of programmers.
Computers are pretty important, and they're not likely to become less important in the future.

I have zero background in this field. Surely there are plenty of Mustachian programmers out there. Would anyone be willing to explain:
1) Is this field really as vibrant and in demand as it appears?
Yes.

2) Anecdotally, my impression is that programmers are quite fulfilled in their work. True?
If so, it's probably mostly because they can dictate terms much more easily, and thus have the option to leave bad situations. Also, the job is in most cases not particularly demanding and, compared to many other types of employment, relatively free of BS. That said, I've known a number of unsatisfied programmers.

3) How would one even begin to learn programming? It feels like such a vast field.
I think you should start with a book like Learn Python the Hard Way (it's free).

4) Should I become a programmer? (this one maybe the toughest to answer)
Impossible to know. First, it's worth noting that becoming a programmer without formal training is by no means a guaranteed way to get a job. Coding bootcamps are looked upon with skepticism by the top employers in the field. Self-trained programmers moreso, especially if you don't have a portfolio.

That said, I find it enjoyable, and extremely lucrative. If you could know with certainty that you'd be in the top 10-25% of programmers and developed some way to demonstrate this to potential employers, I'd say it's a no brainer. But I don't know of a high-likelihood path to do that that is free of formal schooling.

obstinate

  • Handlebar Stache
  • *****
  • Posts: 1155
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #10 on: January 03, 2017, 11:25:16 PM »
Can anyone comment on how an older candidate might fare in this field -- say, in their early 40s? I've thought about giving it a try, but I'd be that age by the time I got trained. I've heard there's tons of age discrimination. However, I have no desire to work in Silicon Valley or any of the "cool" places associated with startups. Would work in Middle America or the South at a plain old boring company.
I don't think age discrimination is something you should worry about. The more pressing issue would be discrimination against the non-formally educated and those who take alternate paths (which is legal, and, one might argue, sensible). Also worth noting that the salaries in middle America for programmers do not compare favorably with those in the Bay Area or other technology hubs, even after controlling for cost of living.

damyst

  • Stubble
  • **
  • Posts: 199
  • Age: 47
  • Location: Canada
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #11 on: January 04, 2017, 12:29:00 AM »
I second what obstinate says regarding the prospects of formally educated developers vs. self-taught ones, or bootcamp graduates.
Software developers aren't hired to write code. They're hired to solve problems. A university degree in computer science or a related field is just a piece of paper that says "this person spent X number of years practicing solving problems using a computer".

As a self-taught coder (or bootcamp graduate), you'd need an alternative way to prove that you can solve customer problems with code. You'd need to reference past contracting work, and/or substantial private projects that gained some traction. You'd likely have to demonstrate some proficiency in computer science fundamentals (complexity, algorithms, data structures etc) - it's not rocket science, but you won't automatically pick this up just by teaching yourself Python. And even if you can do all that, you'd still be at a disadvantage if competing against a decent university graduate.
Some colleges offer Bachelor of Computer Science programs, designed for university grads from other fields who want to make the switch to CS. These are a much bigger investment than a boot camp, but they'll get you a lot more opportunities after graduation.

A word about boot camps: the better ones have excellent curriculum and staff. They can absolutely turn a motivated student into a decent programmer. But the same motivated student could also learn on their own and save their money. I have yet to see a software company that would consider a bootcamp grad for a position but would refuse to interview an autodidact with equivalent skills.

damyst

  • Stubble
  • **
  • Posts: 199
  • Age: 47
  • Location: Canada
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #12 on: January 04, 2017, 12:32:06 AM »
Is anyone looking at coding to generate some post FIRE income with side jobs? Has anyone achieved that?

This topic from a few days back might interest you:
http://forum.mrmoneymustache.com/ask-a-mustachian/software-developers-what-does-a-great-post-fire-project-look-like

Lagom

  • Handlebar Stache
  • *****
  • Posts: 1258
  • Age: 40
  • Location: SF Bay Area
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #13 on: January 04, 2017, 12:37:10 AM »
I second what obstinate says regarding the prospects of formally educated developers vs. self-taught ones, or bootcamp graduates.
Software developers aren't hired to write code. They're hired to solve problems. A university degree in computer science or a related field is just a piece of paper that says "this person spent X number of years practicing solving problems using a computer".

As a self-taught coder (or bootcamp graduate), you'd need an alternative way to prove that you can solve customer problems with code. You'd need to reference past contracting work, and/or substantial private projects that gained some traction. You'd likely have to demonstrate some proficiency in computer science fundamentals (complexity, algorithms, data structures etc) - it's not rocket science, but you won't automatically pick this up just by teaching yourself Python. And even if you can do all that, you'd still be at a disadvantage if competing against a decent university graduate.
Some colleges offer Bachelor of Computer Science programs, designed for university grads from other fields who want to make the switch to CS. These are a much bigger investment than a boot camp, but they'll get you a lot more opportunities after graduation.

A word about boot camps: the better ones have excellent curriculum and staff. They can absolutely turn a motivated student into a decent programmer. But the same motivated student could also learn on their own and save their money. I have yet to see a software company that would consider a bootcamp grad for a position but would refuse to interview an autodidact with equivalent skills.

This is what I am banking on. What I have come to realize about the bootcamps is that even the best ones pretty much require the student to go above and beyond with self-study and side projects if they want to have a strong shot at getting a good job. Thus for the properly motivated auto-didact, I see little to no advantage to spending the money on a bootcamp, other than their career support services, maybe, but I have not yet been convinced that those are worth $10-20k when aggressive networking and hustle is still often necessary even with that advantage.

damyst

  • Stubble
  • **
  • Posts: 199
  • Age: 47
  • Location: Canada
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #14 on: January 04, 2017, 12:49:26 AM »
4) Should I become a programmer? (this one maybe the toughest to answer)

This is potentially a pretty easy question to answer. Try it out for yourself for a week or two.
If you find you're overflowing with excitement and can't wait to learn more and more and more - congratulations, you're a natural coder. Go to school if you want, go to bootcamp, start a business from home, whatever works best.
If it makes you want to chug a bottle of tequila and then break the bottle and use it to cut your wrists - maybe programming isn't for you.
Anything inbetween, you're back to square one.

Overflow

  • Stubble
  • **
  • Posts: 155
  • Age: 34
  • Location: Mitten
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #15 on: January 04, 2017, 07:35:43 AM »

Quote
4) Should I become a programmer? (this one maybe the toughest to answer)

What do you do for a living right now? Honestly, I think domain expertise in X + computer programming tends to lead to more interesting, higher paying, and more secure jobs than looking for work as a pure programmer (particularly one without years of experience learning lots of esoteric things that brand new college CS grads won't know).

Thanks for all the thoughts.

I have a substantial background in liberal arts and religious studies (BA and MA) and 3+ years of experience in logistics, travel, business development and customer service.

I can only hope that my background could offer a unique combination with coding. Problem solving is just analysis and critical thinking. I just need to pick up an entirely new tool belt in order to think and analyze code.

I have jumped into the free version of Codecademy. Looks like HTML and CSS is the place to start, then JavaScript. Probably look into Python after that.


What I hear is that acquiring legitimacy being self-taught is tough.

How do you demonstrate skill sets to potential employers? What kind of things would make up a portfolio?

neo von retorch

  • Magnum Stache
  • ******
  • Posts: 4944
  • Location: SE PA
    • Fi@retorch - personal finance tracking
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #16 on: January 04, 2017, 07:55:22 AM »
How do you demonstrate skill sets to potential employers? What kind of things would make up a portfolio?

That depends on the employer. Early in my career, being "interested in code" was helpful, as long as I was going after entry-level coding jobs (because the demand was high - '99 - 2004 era) and I had some Comp. Sci. education (I dropped out.) I always did stuff on my own on the side; at first fun projects for myself and friends/family and later, freelance work. So starting in ~2006, I could actually offer to demo projects during an interview. Note that this is ~7 years from when I started writing code, though you can probably get together things to demo in a lot less time. Some interviews include technical questions just to see what you've learned so far, but if the interviewer is wise, they really just want to see how well you handle being asked things you don't know and how you step through problems to figure them out. Being willing to take time to learn things is what's going to get the job done... sometimes they know this. Sometimes they think you should already know "their specific combination of technologies." (Recruiters are notoriously awful at knowing what you should know; they can only think in bullet lists!) Also, some interviews have "puzzle-time", which is some kind of generic algorithm-solving project you have to do on the spot. Again, the better interviewers are less interested in a perfect answer and more interested in how you work through the problem.

I don't really have a "portfolio", but I probably should. Since you're starting out, you can get into community projects and personal projects, and store your code on something like github. Having an "open-source" library of code can go a long way. Another thing is to be involved in the Stack Overflow community. Not only is it a wildly useful resource for a programmer, but as you get more competent, contributing answers and solutions can help build up your reputation. (As with any of these things, some interviewers will look at these things and care, and others might be oblivious.)

aschmidt2930

  • Bristles
  • ***
  • Posts: 272
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #17 on: January 04, 2017, 08:04:17 AM »
One consideration:  Yes, there's a large demand for programmers.  There's also a lot of great programmers that have already built useful things the market is actively using.  You can make a ton of money specializing in using these existing tools.  A little secret of most corporations is that the technology is ahead of their people's ability to effectively use it.  If you're an expert in something like Salesforce (there's plenty of online resources to learn), you can do extremely well without becoming a true programmer. 


cj25

  • Stubble
  • **
  • Posts: 147
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #18 on: January 04, 2017, 09:13:03 AM »
As in demand as they may be, it's not "easy" to get a job.  My DH spent Feb-May looking last year, with several almosts, but no offers.  Then he got laid off in October and still hasn't found anything. 
« Last Edit: January 04, 2017, 09:15:25 AM by cj25 »

Dave1442397

  • Handlebar Stache
  • *****
  • Posts: 1653
  • Location: NJ
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #19 on: January 04, 2017, 09:24:01 AM »

Quote
4) Should I become a programmer? (this one maybe the toughest to answer)

What do you do for a living right now? Honestly, I think domain expertise in X + computer programming tends to lead to more interesting, higher paying, and more secure jobs than looking for work as a pure programmer (particularly one without years of experience learning lots of esoteric things that brand new college CS grads won't know).

Thanks for all the thoughts.

I have a substantial background in liberal arts and religious studies (BA and MA) and 3+ years of experience in logistics, travel, business development and customer service.

I can only hope that my background could offer a unique combination with coding. Problem solving is just analysis and critical thinking. I just need to pick up an entirely new tool belt in order to think and analyze code.

I have jumped into the free version of Codecademy. Looks like HTML and CSS is the place to start, then JavaScript. Probably look into Python after that.


What I hear is that acquiring legitimacy being self-taught is tough.

How do you demonstrate skill sets to potential employers? What kind of things would make up a portfolio?

You may have better luck getting a starting position through a contracting company. That way, a potential employer can take a chance on you without going through the hiring process, and you may be hired later on (that's how I got my current job).

Just to show some of the Dilbert situations that exist in the workplace:

I worked as a contractor for a large financial company in the mid '90s, and there was a big demand for contracting staff at the time. I talked to some of our Russian programmers and found out that they had a school set up in Brighton Beach that taught them how to pass a tech interview. Yep, no coding skills whatsoever, just how to answer questions. They also gave them a fake resume, with all the work history in Russia, where it was impossible to verify.

If they made it through the tech interview, they would typically work in groups of three or four and the one who knew how to code would gradually teach the others. Some of them got pretty good, but not all.

I remember one guy started at 9am one day, and at around 11 his manager asked me to come into her office, which was across the aisle from his cube. I sat down and she said "Watch what he's doing". He was pressing one key at a time, with gaps of maybe five seconds between keystrokes. I don't think he had ever used a QUERTY keyboard before. She asked me to send him home and let the contracting company know that he wasn't coming back.

At another company, I worked with a few contractors who sat in a room with a fourth guy, who worked for a different contracting company. All we knew about him was that his name was Vlad and he didn't speak much English. He'd been there just over six months when we came back from lunch and his desk had been cleared. Apparently a manager had gone in there to look for one of my friends, and only Vlad was there. The conversation went something like this:

Manager: "Hey, I'm looking for Carl, have you seen him?"
Vlad: <smile> (he really spoke very little English)
M: "Who are you?"
V: "Vlad"
M: "Who do you work for?"
V: <names manager>
M: "Huh, really. I'll be right back"

Turned out that the manager who interviewed Vlad and had him brought on board had been fired the Friday before Vlad started. Someone gave him a desk and a computer, and he sat there for six months learning COBOL and CICS. Once they found out that he'd been getting paid for doing nothing, they escorted him out of the building.

golden1

  • Handlebar Stache
  • *****
  • Posts: 1541
  • Location: MA
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #20 on: January 04, 2017, 09:49:35 AM »
I keep flirting with this.  I have an engineering background, and have some minor coding experience from back in the day, BASIC, Pascal.  A few years ago, I did the Codeacademy CSS/HTML and Javascript class and found it fairly easy, but I don't think it really pushed me to learn the language deeply.  It seems that Python is a good language to learn so I might try that next. 

letired

  • Pencil Stache
  • ****
  • Posts: 824
  • Location: Texas
    • Needs More Glitter
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #21 on: January 04, 2017, 10:33:16 AM »
My experience, YMMV.

I got a masters degree in a biology field. After working for a few years in academia, the money was running out for my job and I wanted a career with potential salary growth. I had some some work in R for stats analysis, and I had painfully slowly worked on a little bit of a Udacity class. I ended up in a time crunch where I didn't have 6-12 months to develop my skills and build a portfolio, so I did a local bootcamp (Ruby on Rails) which was just getting off the ground, meaning it was Much Cheaper than any bootcamp I've heard of these days. I would not call the curriculum particularly rigorous, but it covered enough ground for me to get a job writing JS webscrapers. After ~1.5 years, I was referred by a friend to a new company where I now work on large scale high-data-throughput applications in Go (another programming language that I didn't know when starting the job).

It has worked out very well for me. Also, my unrelated but advanced science-based degree help people understand I'm fancy and smrt and can solve problems. I also interview well in general, and am comfortable standing in a room in front of people and talking through a problem and admitting what I don't know and making educated guesses out loud.

If you can find local user groups for various programming languages/tools, that will help a lot, because those are the people who will refer you to jobs. They are also the people who can help set expectations like 'what is a reasonable salary to expect' and 'should they supply a computer' (depends on the market, and yes).

Codecademy is great for getting your feet wet. It will tell you things like 'here is the general syntax for this language' and 'does typing into a terminal and getting repeated error messages make me want to claw my eyes out in frustration'. After that, you'll be much better off with some of the other resources mentioned, where you will have much less hand-holding and thus be in a position to actually learn much more (based on my learning style, ymmv etc). Another reason user groups are great is because you can sometimes find other people interested in going through the same program/book/tutorial you are, and having an extra brain to help when you're stuck is amazeballs. There are also probably enough folks here who wouldn't mind answering questions too.

Some other fun resources if you are stuck on 'what to do' after you've got the basics down.

Exercism.io  and/or Code Wars - Places to solve small, progressively more difficult programming challenges and theoretically get feedback (I haven't had a ton of luck with the feedback, but I also haven't been consistent in doing the exercises). More valuable, see how other people solved the same problem. Gives you a chance to evaluate your solution against other peoples' and learn some new tricks.
Project Euler - solve math problems with programming! Probably the most nerdy, and not everyone's cup of tea. You can still be a programmer if this doesn't get your motor going.
Advent of Code - if you're just getting started, this is probably going to be super way too hard, but it's a fun look at what you'll be able to do eventually.
180 Websites - this is an off-the-charts portfolio for a self-taught programmer, but good illustration of how to show what you know.
Projects - an insanely extensive list of project ideas for expanding your skillset when you don't have a good idea of what to work on.

maizefolk

  • Walrus Stache
  • *******
  • Posts: 7434
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #22 on: January 04, 2017, 10:43:26 AM »
I got a masters degree in a biology field. After working for a few years in academia, the money was running out for my job and I wanted a career with potential salary growth. I had some some work in R for stats analysis, and I had painfully slowly worked on a little bit of a Udacity class. I ended up in a time crunch where I didn't have 6-12 months to develop my skills and build a portfolio, so I did a local bootcamp (Ruby on Rails) which was just getting off the ground, meaning it was Much Cheaper than any bootcamp I've heard of these days. I would not call the curriculum particularly rigorous, but it covered enough ground for me to get a job writing JS webscrapers. After ~1.5 years, I was referred by a friend to a new company where I now work on large scale high-data-throughput applications in Go (another programming language that I didn't know when starting the job).

I've always wondered about the viability on going from the level of programming we use in biology these days (R/Perl/Python and often scripts that no one other than the writer will ever use) to real computer programming jobs, so it was great to read about the experiences of someone who successfully made the leap.

letired

  • Pencil Stache
  • ****
  • Posts: 824
  • Location: Texas
    • Needs More Glitter
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #23 on: January 04, 2017, 11:39:25 AM »
I got a masters degree in a biology field. After working for a few years in academia, the money was running out for my job and I wanted a career with potential salary growth. I had some some work in R for stats analysis, and I had painfully slowly worked on a little bit of a Udacity class. I ended up in a time crunch where I didn't have 6-12 months to develop my skills and build a portfolio, so I did a local bootcamp (Ruby on Rails) which was just getting off the ground, meaning it was Much Cheaper than any bootcamp I've heard of these days. I would not call the curriculum particularly rigorous, but it covered enough ground for me to get a job writing JS webscrapers. After ~1.5 years, I was referred by a friend to a new company where I now work on large scale high-data-throughput applications in Go (another programming language that I didn't know when starting the job).

I've always wondered about the viability on going from the level of programming we use in biology these days (R/Perl/Python and often scripts that no one other than the writer will ever use) to real computer programming jobs, so it was great to read about the experiences of someone who successfully made the leap.

It's a great place to start! If you want to go into any kind of application development, there is a bunch about that specific domain to learn, but being able to do basic (and advanced) scripting is a great background for general programming tasks. I've never had it as a job, but my understanding is that a lot of testing-type positions rely on more scripting-type programming.

tcmJOE

  • 5 O'Clock Shadow
  • *
  • Posts: 3
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #24 on: January 04, 2017, 11:54:45 AM »
So, a few thoughts (working as a data scientist, which is basically statistics with more coding).

General programming is fine, and I've grown from hating it to being okay with it, but I generally find that it's a lot more interesting when I *do* something with it, rather than just the usual "work through book exercises and why do I care about ___ again?".

So, to get into coding, you need to find some related project. For me, since I was a graduate student in physics, I was learning it to do physics-y things, from simulating phonon transmission to telling my various bits of lab equipment how to work together in concert. A lot of folks get into programming because they want to make a game. Others, to make music or blinky electronics or something else.

With that in mind
- Pick a hobby that's amenable to a computer getting involved.
- Find some book/website that tells you how to write code for what you need.
- See how you like it.

A lot of folks here recommend Codecademy, though honestly I didn't care for it--critically, I found that it didn't tell me how to install the language on my computer in the first place. If you're interested in Python (which is a pretty decent first-language), I'd recommend Al Swiegert's Invent With Python (https://inventwithpython.com/) series of books. They're free, they're more project focused (he has two games books, one on code breaking, and a nice general purpose one called "Automate the Boring Stuff With Python").

Note that if you want a real coding job, the gulf between the "learn syntax for X language" and what's actually done in production is pretty big (I'm trying to get into Java after years of writing Matlab/Python/R scripts and it's a confusing mess even for me). Hence, all the more reason why you may want to take a project-first approach, as you can rely on some domain expertise and interest to get you through the weeds. If you're trying to get into something without domain expertise, you'll need more experience to make you a saleable candidate.

So, in response to maizeman, the little Python/Matlab/R scripts we scientists use are a ticket to a real job (at least as a "data scientist" or something of that ilk), provided you're ready and willing to pick up the other important bits on the job. It's that magic domain expertise, or at least the related cousins (analytical experience and my ability to read a paper off of ArXiv and code up an algorithm from it) that carries me the rest of the way.

And to quote Zed Shaw (of the Learn ___ the Hard Way books):

Quote
Programming as a profession is only moderately interesting. It can be a good job, but you could make about the same money and be happier running a fast food joint. You're much better off using code as your secret weapon in another profession.

People who can code in the world of technology companies are a dime a dozen and get no respect. People who can code in biology, medicine, government, sociology, physics, history, and mathematics are respected and can do amazing things to advance those disciplines.


EDIT:

I just saw Overflow's middle post, so a few more things. Well, a few of the same things repeated.

From your position, I would HIGHLY recommend "Automate the Boring Stuff With Python". I think you'll find immediate applicability.

For a portfolio, here's what folks often do:
- Get a GitHub (or Bitbucket) page and put their coding projects on there. You'll want some projects all of your own. Hear what I say? Projects!
- Collaborate on an open-source project. This is difficult when you're just starting out, but often these projects would REALLY gain by having someone write better documentation for them (it often SUCKS!) or make a tutorial. This will show that you have a much better understanding of working in a software team. Don't do this until you're somewhat competent with your own programming, though. (People, rightly or wrongly, can be jerks to beginners that they feel are wasting their time).
« Last Edit: January 04, 2017, 12:15:59 PM by tcmJOE »

briesas

  • 5 O'Clock Shadow
  • *
  • Posts: 59
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #25 on: January 05, 2017, 09:11:28 AM »
posting to follow. Great original question and helpful answers. I've been wondering about this myself

RonMcCord

  • Stubble
  • **
  • Posts: 106
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #26 on: January 05, 2017, 01:09:32 PM »
I'm doing Free Code Camp, which is good if you want to get into web development.  Beyond that, hanging out in their facebook group, I've seen some good resources and links to other training opportunities that are either free or low-cost:

JavaScript30: Build 30 apps in 30 days. Videos and files are included.  Author also has some additional free and paid courses in more advanced languages like ReactJS.
Web Development in 2017:Gives a guide plan on what languages to learn in which order.
Upskill:More tutorials for web development.
CodeNewbie: Community for people wanting to get into web development. Tons of podcasts from people who moved into web development from another field.

SimpleCycle

  • Handlebar Stache
  • *****
  • Posts: 1259
  • Location: Chicago
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #27 on: January 05, 2017, 03:12:06 PM »
Both my wife and I are "people who code for their jobs" but not "computer programmers".  I think in general people are usually thinking of software developers when they think of the prototypical computer programmer.  In my experience, software development is a fairly defined skill set on its own that involves more than just coding, although a coding background is often sufficient to get started in an entry level job.

I am a data manager.  I write a lot of SQL, SAS, and Stata, which I think most average people would consider code and most "coders" would consider a very basic skill set.  I also do a lot of analysis in Excel and Tableau, and use Crystal Reports to do a lot of reporting.  So basically I am a very software literate person who can code when needed.  I'd say I spend 30% of my time "coding" (mostly SQL), 30% of my time doing analysis and reporting, and 40% of my time doing the "people" side of data analysis and project management.  Honestly it's my ability to do the last part that got me hired and makes me valuable at work.  Basically having both people skills and data skills is invaluable in my field.

I am basically self taught.  I took one class in C++ in undergrad, but I literally haven't compiled a line of code since 1999.  My work study job in undergrad was making websites (a skill I taught myself in high school), and that led to me getting a job shortly after undergrad as a web developer, where I had to learn PHP and very basic SQL to do my job.  Then I went to grad school in my domain area, where I picked up some SAS and Stata but mostly learned about healthcare.  After grad school I got my first "data analyst" position, which required no coding, and have gradually moved into more technical roles over the course of my career.

The thing that drives my job satisfaction the most is the mix of different things.  I would be unhappy coding all day, and I would be VERY unhappy doing all project management, but I am very happy with a place that allows me to do both.  The biggest drawback of my job is that because I have a diverse skill set, I am not an "expert" in any one thing, and my compensation reflects that (although some of it is the industry/employer type).  I would make much more money if I just did development on the main platform I use, but I'd be bored to tears.

My wife is a data scientist.  She codes a lot more than I do, and in Python.  She has a PhD in computational science, so a pretty traditional background for that kind of work, and learned most of her code skills in grad school.  Python is a great skill set if you are interested in data at all - it's a huge growing area.  My best friend is a software developer of sorts and he also works mostly in Python.

All three of us would strongly consider someone who was self-taught for a job.  Even though we all technically have some formal education in coding, we know how much we taught ourselves and figure that's true of someone who's self taught as well.  None of us has a particularly positive impression of bootcamp grads over people who are self-taught, and my software development friend has an actively negative impression of bootcamp grads based on the lack of depth in their skillset.

You've already received good advice on building a demonstration portfolio - github is most common in my field.  A lot of these skills can be demonstrated in web-based projects, which are nice to show off.

Good luck.  I say try it out and see if you like it!  Learning to code is a commitment, but also very satisfying, and can definitely improve your career prospects.

ZagNation

  • 5 O'Clock Shadow
  • *
  • Posts: 47
  • Age: 33
  • Location: Seattle
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #28 on: January 05, 2017, 04:06:34 PM »
Posting to follow and as a reminder to share my experience as I am enrolling in The Firehose Project next month. About a year later I will follow that up with Free Code Camp to gain real world experience working with several non profit organizations. My current thought process is knowing one or more programming languages is a solid complimentary skill for a business intelligence analyst and will prove valuable at some point down the road. Either a side hustle or a career change are in my not too distant future.

Christof

  • Pencil Stache
  • ****
  • Posts: 720
  • Age: 47
  • Location: Germany
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #29 on: January 05, 2017, 04:46:30 PM »
A couple of things to consider:

The cost of software development is currently rising. This will lead to attempts to make the process more efficient which will lower cost. Software developers operate in a protected market much like doctors and lawyers. It needs a software developer to make the process of software development more efficient. That doesn't protect us from a disruption, though.

The numbers you see are really skewed geographically. If you remove developers from certain parts of California, Washington and New York City, the average salary would be a lot lower. Michigan has some booming parts, but mostly you would expect a lower salary than what you read on the internet about the average developer.

Writing code is not what is paying a lot of money, because everyone on this planet can do it. You need something else, and even if it's simply being able to pick up the phone and talk with customers during their business hours and understanding the question.

Currently we are at yet another new wave with web and cloud computing. Processes for client/server enterprise scale desktop applications where pretty efficient, but obviously limited to desktops in enterprise situations. Currently people trying to figure out how to make things work on the web. Technologies keep changing from month to month. The process is not yet efficient. Applications are more scalable, more platform agnostic than ever before, but lack features and usability. As the process matures we will see more efficient and standardized approaches which will require less developers.

The software business is driven by low interest rates. Software scales relatively cheaply. Increasing the output of a manufactury by 10,000 is a lot harder than increasing the number of users by the same level. This makes software companies a preferred investment target. Everyone is talking about investing into the next Google or Facebook. Nobody wants to invest into the next Procter and Gamble or Unilever. More money means higher salaries in investment backed companies which drives the rates for everyone else up as the competition for developer increases.

mustachepungoeshere

  • Handlebar Stache
  • *****
  • Posts: 2404
  • Location: Sydney, Oz
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #30 on: January 05, 2017, 08:21:49 PM »
Posting to follow.

Developing my coding skills would be incredibly valuable in my current role.

puj

  • 5 O'Clock Shadow
  • *
  • Posts: 1
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #31 on: January 06, 2017, 11:13:11 AM »
I am one of the many considering learning to code better and have been looking at my online learning options.

I am in a similar situation to SimpleCycle above as i use SQL and MATLAB for simple coding at work but i do not consider myself to be a programmer. From reading the above it looks like I will be best off learning in my spare time and applying it to my day job.

I am interested in hearing from anyone else that has changed careers after teaching themselves using resources online.

Fiscal_Hawk

  • 5 O'Clock Shadow
  • *
  • Posts: 57
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #32 on: January 06, 2017, 03:11:23 PM »


I am a data manager.  I write a lot of SQL, SAS, and Stata, which I think most average people would consider code and most "coders" would consider a very basic skill set.  I also do a lot of analysis in Excel and Tableau, and use Crystal Reports to do a lot of reporting.  So basically I am a very software literate person who can code when needed.  I'd say I spend 30% of my time "coding" (mostly SQL), 30% of my time doing analysis and reporting, and 40% of my time doing the "people" side of data analysis and project management.  Honestly it's my ability to do the last part that got me hired and makes me valuable at work.  Basically having both people skills and data skills is invaluable in my field.




I am in my first entry level data analyst job in the healthcare sector. Is there any online bootcamp or area where I can enhance my knowledge of languages and tools such as SQL or other statistical software?

My SQL skills are basic at this point and I am kind of learning as I go on the stats. My background is a business degree and accounting background. I returned to school and earned my associates degree in CS last year to get into data or business analytics. I now work at a small clinic and so I am trying to enhance my knowledge and learn as much as possible.

ZagNation

  • 5 O'Clock Shadow
  • *
  • Posts: 47
  • Age: 33
  • Location: Seattle
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #33 on: January 06, 2017, 03:33:42 PM »
I am in my first entry level data analyst job in the healthcare sector. Is there any online bootcamp or area where I can enhance my knowledge of languages and tools such as SQL or other statistical software?

My SQL skills are basic at this point and I am kind of learning as I go on the stats. My background is a business degree and accounting background. I returned to school and earned my associates degree in CS last year to get into data or business analytics. I now work at a small clinic and so I am trying to enhance my knowledge and learn as much as possible.
I recently was informed that by going through my local library, I could access Lynda for FREE! Talk about a treasure trove of information. Massive online open courses have become such a game changer in decentralizing education. The company I work for has recently procured Tableau and Alteryx licenses so I have turned to Lynda as the starting place for my training. You most definitely can sharpen your SQL and statistic skills there.

sakura

  • 5 O'Clock Shadow
  • *
  • Posts: 35
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #34 on: January 06, 2017, 04:38:59 PM »

Quote
4) Should I become a programmer? (this one maybe the toughest to answer)

What do you do for a living right now? Honestly, I think domain expertise in X + computer programming tends to lead to more interesting, higher paying, and more secure jobs than looking for work as a pure programmer (particularly one without years of experience learning lots of esoteric things that brand new college CS grads won't know).

Thanks for all the thoughts.

I have a substantial background in liberal arts and religious studies (BA and MA) and 3+ years of experience in logistics, travel, business development and customer service.

I can only hope that my background could offer a unique combination with coding. Problem solving is just analysis and critical thinking. I just need to pick up an entirely new tool belt in order to think and analyze code.

I have jumped into the free version of Codecademy. Looks like HTML and CSS is the place to start, then JavaScript. Probably look into Python after that.


What I hear is that acquiring legitimacy being self-taught is tough.

How do you demonstrate skill sets to potential employers? What kind of things would make up a portfolio?

You may have better luck getting a starting position through a contracting company. That way, a potential employer can take a chance on you without going through the hiring process, and you may be hired later on (that's how I got my current job).

Just to show some of the Dilbert situations that exist in the workplace:

I worked as a contractor for a large financial company in the mid '90s, and there was a big demand for contracting staff at the time. I talked to some of our Russian programmers and found out that they had a school set up in Brighton Beach that taught them how to pass a tech interview. Yep, no coding skills whatsoever, just how to answer questions. They also gave them a fake resume, with all the work history in Russia, where it was impossible to verify.

If they made it through the tech interview, they would typically work in groups of three or four and the one who knew how to code would gradually teach the others. Some of them got pretty good, but not all.

I remember one guy started at 9am one day, and at around 11 his manager asked me to come into her office, which was across the aisle from his cube. I sat down and she said "Watch what he's doing". He was pressing one key at a time, with gaps of maybe five seconds between keystrokes. I don't think he had ever used a QUERTY keyboard before. She asked me to send him home and let the contracting company know that he wasn't coming back.

At another company, I worked with a few contractors who sat in a room with a fourth guy, who worked for a different contracting company. All we knew about him was that his name was Vlad and he didn't speak much English. He'd been there just over six months when we came back from lunch and his desk had been cleared. Apparently a manager had gone in there to look for one of my friends, and only Vlad was there. The conversation went something like this:

Manager: "Hey, I'm looking for Carl, have you seen him?"
Vlad: <smile> (he really spoke very little English)
M: "Who are you?"
V: "Vlad"
M: "Who do you work for?"
V: <names manager>
M: "Huh, really. I'll be right back"

Turned out that the manager who interviewed Vlad and had him brought on board had been fired the Friday before Vlad started. Someone gave him a desk and a computer, and he sat there for six months learning COBOL and CICS. Once they found out that he'd been getting paid for doing nothing, they escorted him out of the building.

HAHAHA that is too funny. what a lucky Vlad!

RonMcCord

  • Stubble
  • **
  • Posts: 106
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #35 on: February 09, 2017, 09:05:54 AM »
Posting to follow and as a reminder to share my experience as I am enrolling in The Firehose Project next month. About a year later I will follow that up with Free Code Camp to gain real world experience working with several non profit organizations.

FCC makes you complete a series of projects and assignments before you can do the nonprofit stuff.  I'd recommend doing FCC first or concurrently with Firehose Project.

AZDude

  • Handlebar Stache
  • *****
  • Posts: 1296
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #36 on: February 09, 2017, 01:49:25 PM »
Been a programmer for ~12 years now:


Quote
1) Is this field really as vibrant and in demand as it appears?

There are many, many jobs out there. I get recruited weekly, if not daily, by recruiting firms, recruiters working directly for companies, and previous employers. That being said, I have a highly desirable skill set and a shitload of really good experience. When I first started I found it difficult to land a job. Once I had 2-3 years, it was easy, even during the financial crisis.

Quote
2) Anecdotally, my impression is that programmers are quite fulfilled in their work. True?

For me the answer is a resounding no. I dislike my career and stay due to the flexibility and pay. I have seriously considered leaving the profession numerous times and am becoming more serious about exploring other potential careers.

Quote
3) How would one even begin to learn programming? It feels like such a vast field.

You can go the traditional route and get a BS in Computer Science from a respected online program. There are dozens out there to choose from. You can also do some self-paced courses and then get certified (MCSE, etc...). This would be faster and cheaper. Alternatively, if you work someplace where this is possible, you could self-teach and then grow into that role slowly in your current company. Either way, specialized in something rather than be a generalist.

Quote
4) Should I become a programmer? (this one maybe the toughest to answer)

Pros:
Good pay.
Good job prospects.
Flexible work schedule(normally, not always).
Generally work with smart people.
People think you are smart because you have a job that sounds complex.

Cons:
Most places put you on an on-call rotation meaning you can get woken up at 3AM on Sunday over something that is probably not important.
Dealing with non-technical people, business analysts, "project managers", and customers might drive you insane. If you are not easily offended, don't mind criticism coming from people of lesser skill and intelligence, etc... than this is not an issue.
Work is drudgery most of the time. Occasionally you get an interesting project, but often you do shit like program automated word templates and other nonsense.
Older workers are often laid off and replaced by younger ones(seen this happen at 3 different places).
You have to constantly learn new skills and stay on top of new technologies or you will become obsolete, get laid off, and be unemployable.



ZagNation

  • 5 O'Clock Shadow
  • *
  • Posts: 47
  • Age: 33
  • Location: Seattle
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #37 on: February 09, 2017, 05:02:20 PM »
Posting to follow and as a reminder to share my experience as I am enrolling in The Firehose Project next month. About a year later I will follow that up with Free Code Camp to gain real world experience working with several non profit organizations.

FCC makes you complete a series of projects and assignments before you can do the nonprofit stuff.  I'd recommend doing FCC first or concurrently with Firehose Project.

Appreciate the suggestion Ron! Ideally I would go through both concurrently but I will see how feasible it is as I get underway with Firehose.

kimmarg

  • Pencil Stache
  • ****
  • Posts: 750
  • Location: Northern New England
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #38 on: February 09, 2017, 06:45:39 PM »
Python is a great skill set if you are interested in data at all - it's a huge growing area.  My best friend is a software developer of sorts and he also works mostly in Python.


Any recommendations for learning Python? LIke you I'm someone who 'uses code for my job' but my job is not coding.  I have a bit of experience in all sorts of stuff, with the most in MySQL/PhP and Matlab.  Recently I've had to move into Python.  I find myself very frustrated because while I can hack may way through things I know there are more elegant ways to do it. I could use more knowledge of python data structures and python specific stuff. Most of the time I find myself googling 'print_r in python' or something of the sort while suppressing the urge to put a semicolon at the end of every line. 

When I've looked at online tutorials they seem to start too much at the beginning. I don't need an explanation of If/else/for etc. I need highlights of differences between python and other major languages. Ideas???

letired

  • Pencil Stache
  • ****
  • Posts: 824
  • Location: Texas
    • Needs More Glitter
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #39 on: February 09, 2017, 09:14:48 PM »
Python is a great skill set if you are interested in data at all - it's a huge growing area.  My best friend is a software developer of sorts and he also works mostly in Python.


Any recommendations for learning Python? LIke you I'm someone who 'uses code for my job' but my job is not coding.  I have a bit of experience in all sorts of stuff, with the most in MySQL/PhP and Matlab.  Recently I've had to move into Python.  I find myself very frustrated because while I can hack may way through things I know there are more elegant ways to do it. I could use more knowledge of python data structures and python specific stuff. Most of the time I find myself googling 'print_r in python' or something of the sort while suppressing the urge to put a semicolon at the end of every line. 

When I've looked at online tutorials they seem to start too much at the beginning. I don't need an explanation of If/else/for etc. I need highlights of differences between python and other major languages. Ideas???

the Scenic Programming Language tours might be a good start for you: https://learnxinyminutes.com/

They are dense overviews of specific language syntax with a little bit of commentary, and you can easily scroll through to the part you need. Note that it does not include any of the fancy packages one might use for actual data wrangling or analysis.

MostlyBearded

  • 5 O'Clock Shadow
  • *
  • Posts: 58
  • Age: 38
  • Location: England, UK
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #40 on: February 10, 2017, 05:21:58 AM »
following

RonMcCord

  • Stubble
  • **
  • Posts: 106
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #41 on: February 10, 2017, 08:58:42 AM »
I've been working on the FCC front-end certificate and I'm almost done.  I tried putting in for the Launch_Code apprentice program and got turned down because I messed up on the coding assessment for JS.  I sent my resume and projects to Aquent/Vitamin T to see if a recruiter could help me find something, but I haven't heard anything yet.  Here's the deal though, I plan on moving to Portland in April since there are more jobs up there and I have some friends in the area.  I have about $20k saved to float me until I can find something substantial.  I can either sign up for Epicodus which has classes in April, spend about $7000 on tuition plus any other expenses and get hired through there, or use a combo of the staffing company, networking, and submitting to any job I'm remotely qualified for and hopefully get something that way.  If you want to contact me through PM I can send you links to my stuff if you need a more accurate appraisal.

FIPurpose

  • Handlebar Stache
  • *****
  • Posts: 2062
  • Location: ME
    • FI With Purpose
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #42 on: February 10, 2017, 09:35:12 AM »
This is a very common topic on this forum, and just about every time there are people who have stories of bad new CS grad hires and others who have stories about bad old self-learning hires. There's a reason fancy-shmancy west coast tech companies don't hire self-learned coders. It's because what they're working on isn't about how well their company can code python (though I would still argue that Google's interview process still isn't that great). They are working on new solutions and problems that likely require their programmers to maintain a knowledge and coding expertise of 5-10 different languages. Learning Python might get you an entry into a quality-test lab, but you'd never advance beyond that without additional knowledge.

A CS degree is a serious pursuit, and there's a reason it's worth hiring students from a university and not a boot camp.
1. Most CS professors spent their first years in industry. You are learning under highly skilled professionals.
2. You cover material that bootcamps do not. Material that actually differentiates you from code camps. I can tell a good CS student from a bad based on how well they know these surrounding subjects, not algorithms 101 questions.

Even as a new CS grad, it was my job to train and catch up several 40+ men to come up on new technologies. Usually people with 30+ years experience in the field don't need help, but people without the proper foundations always seem to be just barely drowning all the time in new technology.

While I agree on many of the resources here for learning coding, to learn good programming practices and skills I recommend the following texts:
The C Programming Language
Structure and Interpretation of Programming Languages
Design Patterns


All of these books are easily findable for free on the internet. Study them, know them, implement them.

Stahlmann

  • 5 O'Clock Shadow
  • *
  • Posts: 44
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #43 on: February 10, 2017, 12:53:32 PM »
One consideration:  Yes, there's a large demand for programmers.  There's also a lot of great programmers that have already built useful things the market is actively using.  You can make a ton of money specializing in using these existing tools.  A little secret of most corporations is that the technology is ahead of their people's ability to effectively use it.  If you're an expert in something like Salesforce (there's plenty of online resources to learn), you can do extremely well without becoming a true programmer.

Explain me this, please.

brian313313

  • Stubble
  • **
  • Posts: 199
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #44 on: February 10, 2017, 12:55:55 PM »
I'm a self-taught programmer. I've been doing it for about 25 years now. The demand is there and will probably stay there for good programmers. If you have reasonable logic skills, you should be able to learn it. It's not easy though. It will be a lot of work. Nowadays there are a lot of layers to an application and while you don't need to be an expert in them, you need to know enough to not get completely stuck. When I got in things were simpler, however, I had been doing it since I was 15. Your background doesn't really matter but your learning ability, learning style, and desire to learn are important. One of the best self-taught programmers I know was a music major. I would guess that it would take six month full-time or 12 months full time to get knowledgeable enough. There are ways to shortcut this though if you can get past a tech screen for a larger company that doesn't give you much to do. It would be important for you to continue to learn though because that type of position isn't going to invest much in you...they didn't invest much in the interview either.

I would recommend taking some time with light learning and find out what you like of if it's for you. Some of the hot things right now are Hadoop, Business Intelligence, and Web Programming. I'm sure others can add to this list. I only know what I'm close to. Once you decide what you like, just focus on getting as good as you can at that one things. A lot of job postings will say "requires x and y and z". They generally are just hoping for that. It's really hard to find programmers from the hiring side and if someone is good at one of the harder skills the simpler ones don't matter.

Once you think you're getting good, do a project. After a while you should be able to figure out public data sources. Think of something that has business implications and could be a real project. When I got into Business Intelligence about 10 years ago, I wrote code to "scrape" yahoo.com for stock open & closing prices for the S&P 500 since the S&P 500 started (on Yahoo). Then I build some reports on top of that and did some analytics. Also, if you can put it online, which nowadays with Azure, Amazon Web Services, etc, it's pretty easy to do (once you know how). The project serves as a code sample for prospective employers, helps to build your confidence (very important), and you must work through issues so it will teach you troubleshooting & persistence which are skills that are not in books.

Also plan to repeat this about every 5-10 years. It's much easier the second time though. You'll already have programming experience and probably some contacts you can reach out to. I'm just starting a Hadoop project so I can add this skill to my resume.

I don't think there's any age discrimination overall. Some companies prefer younger, some older. I will say though that at 50 it takes me twice as long to learn something as it did when I was 20. I'm not sure if it's age, or if I picked up some bad habits from working. That's a thought I had because I'm more thorough now that I was when I was 20 but that's not necessary all the time. It's only really necessary when you're doing real work.

Also, if you have a good enough personality and can project confidence, you can sell yourself into a position without much experience. I grew myself that way. I would end up the first month working for free at home "learning" what I was supposed to already know. I was getting it done and most jobs have a period of "learning-curve" that they expect before you'll become very productive.


darkadams00

  • Bristles
  • ***
  • Posts: 419
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #45 on: February 10, 2017, 10:08:18 PM »
I'm a consulting manager with 2-5 teams of statisticians/analysts/data scientists (insert appropriate nomenclature of the day) running projects at any given time. We're mostly looking for R, SAS, SQL, Python skillsets, but we have never had success hiring folks who didn't have the following:

  • Demonstrated programming/stats skills as evidenced by presentable work product, examples of creativity/innovation, or some published work (even if it was just a long-running blog that had some reasonable longevity).
  • Solid communication skills to explain work history, work product, and general aptitude.
  • Ability to answer technical questions on the fly and give appropriate responses when the question was off-center to his/her experience.

For us, formal graduate education is the norm, but we've hired several PhDs at the same level as folks with an MS because the MS applicant was a rock star and the PhD was not, although s/he was a PhD. This is also true in our pure programming departments. We have enough of a applicant pipeline that bootcampers and autodidacts would probably not have a good enough resume to meet our first requirement. We're always looking for demonstrated output, and for whatever reason, in the data/analytics/stats programming world, that just doesn't come around as much without some formal education attached to it. I assume this might not be quite the same experience for app/web/UI developers, especially for smaller companies without HR/recruiting departments and a much smaller applicant pool.


damyst

  • Stubble
  • **
  • Posts: 199
  • Age: 47
  • Location: Canada
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #46 on: February 10, 2017, 10:44:58 PM »
One consideration:  Yes, there's a large demand for programmers.  There's also a lot of great programmers that have already built useful things the market is actively using.  You can make a ton of money specializing in using these existing tools.  A little secret of most corporations is that the technology is ahead of their people's ability to effectively use it.  If you're an expert in something like Salesforce (there's plenty of online resources to learn), you can do extremely well without becoming a true programmer.

Explain me this, please.

I believe "these existing tools" refers back to "useful things the market is actively using", with Salesforce as an example.

To put it slightly differently: you can categorize software by the proficiency level of its intended audience.
On one end of the spectrum you have tools designed for users with virtually no experience.: GMail, Starbucks mobile app, also the code that runs this forum.
On the other end you have software that presents an Application Program Interface that you can't reasonably be expected to use without being a programmer yourself. For example, most of the tools under the Amazon Web Services umbrella, Google App Engine, and the various programming languages themselves.
In between, you have a whole ecosystem of tools that require substantial skill and/or considerable talent to use effectively: Adobe Creative Suite, 3D modeling software from Autodesk and others, network equipment (Cisco, Arista), CRM (SAP, Salesforce), and so on. You can build a viable career by specializing in a handful of them. You'd want to constantly evaluate whether your chosen skill set is on the way to obsolescence, but the same applies to "true programmers" as well.

damyst

  • Stubble
  • **
  • Posts: 199
  • Age: 47
  • Location: Canada
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #47 on: February 10, 2017, 11:17:51 PM »
There's a reason fancy-shmancy west coast tech companies don't hire self-learned coders. It's because what they're working on isn't about how well their company can code python [...] They are working on new solutions and problems that likely require their programmers to maintain a knowledge and coding expertise of 5-10 different languages.

I work for a fancy-schmancy west coast tech company and I agree with what you said above. But I have to respectfully disagree with some of what came after.

Quote
Learning Python might get you an entry into a quality-test lab

Or a data analytics group. Or a financial institution. Or any organization that needs its business processes automated effectively.
For some reason Python receives a lot of scorn from "serious" programmers, even though it's been battle-tested in large complex systems. Have you ever used Dropbox? Their server side was written entirely in Python.

Quote
1. Most CS professors spent their first years in industry. You are learning under highly skilled professionals.

I doubt you would find many bootcamp instructors who hadn't spent their first years in industry. Plus, they're actually hired for their teaching ability, unlike CS professors who too often treat teaching as a chore.
I do think that coding bootcamps are a waste of most people's time, but not because of any problem with the quality of the teaching. As it turns out, the biggest practical hurdle for bootcamp coders is the "HR filter" - that is, the simple fact that most HR departments looking to hire coders would toss their resume in the garbage.

Quote
to learn good programming practices and skills I recommend the following texts:
The C Programming Language
Structure and Interpretation of Programming Languages
Design Patterns


All of these books are easily findable for free on the internet. Study them, know them, implement them.

Maybe I could have concurred with this list 15 years ago. It's certainly not obsolete, but at this point this has to be regarded as fairly specialized knowledge.
I would recommend that people considering diving into programming for the first time focus on newer languages, which have vastly improved the developer experience compared to traditional workhorses like C and C++.
Java, C#, Python are all good candidates.

FIPurpose

  • Handlebar Stache
  • *****
  • Posts: 2062
  • Location: ME
    • FI With Purpose
Re: Learning to Write Code (or, Should I become a computer programmer?)
« Reply #48 on: February 10, 2017, 11:38:04 PM »
There's a reason fancy-shmancy west coast tech companies don't hire self-learned coders. It's because what they're working on isn't about how well their company can code python [...] They are working on new solutions and problems that likely require their programmers to maintain a knowledge and coding expertise of 5-10 different languages.

I work for a fancy-schmancy west coast tech company and I agree with what you said above. But I have to respectfully disagree with some of what came after.

Quote
Learning Python might get you an entry into a quality-test lab

Or a data analytics group. Or a financial institution. Or any organization that needs its business processes automated effectively.
For some reason Python receives a lot of scorn from "serious" programmers, even though it's been battle-tested in large complex systems. Have you ever used Dropbox? Their server side was written entirely in Python.

Quote
1. Most CS professors spent their first years in industry. You are learning under highly skilled professionals.

I doubt you would find many bootcamp instructors who hadn't spent their first years in industry. Plus, they're actually hired for their teaching ability, unlike CS professors who too often treat teaching as a chore.
I do think that coding bootcamps are a waste of most people's time, but not because of any problem with the quality of the teaching. As it turns out, the biggest practical hurdle for bootcamp coders is the "HR filter" - that is, the simple fact that most HR departments looking to hire coders would toss their resume in the garbage.

Quote
to learn good programming practices and skills I recommend the following texts:
The C Programming Language
Structure and Interpretation of Programming Languages
Design Patterns


All of these books are easily findable for free on the internet. Study them, know them, implement them.

Maybe I could have concurred with this list 15 years ago. It's certainly not obsolete, but at this point this has to be regarded as fairly specialized knowledge.
I would recommend that people considering diving into programming for the first time focus on newer languages, which have vastly improved the developer experience compared to traditional workhorses like C and C++.
Java, C#, Python are all good candidates.

You seem to misunderstand me. I don't have anything against Python. It is probably the language I program in the most. And learning C is not to then go and program C. It is to build a foundation. C is the most reasonable language to learn that will teach you how to think like a computer. While learning interpreted languages is a good way to learn for loops and if statements, it doesn't teach you foundations. Debugging will be much harder without knowing how Python works underneath. Knowing what your language is doing is a very necessary step to being an effective programmer.

Boot camping might let you write scripts, but you're not going to make Dropbox. You're right though that there are plenty of business cases that don't need in depth knowledge. I just hope the companies know that.