I want to become a programmer, any advice?

Search
Go

Discussion Topic

Return to Forum List
This thread has been locked
Messages 1 - 20 of total 59 in this topic << First  |  < Previous  |  Show All  |  Next >  |  Last >>
skitch

Gym climber
Bend Or
Topic Author's Original Post - Sep 17, 2016 - 08:37am PT
I know that a few of you are working in or around tech so I'd love to get any advice.

About me: I'm 38 years old, I have a masters in Environmental Engineering,and a BS in Civil (with more of an emphasis in water/wastewater).

I work for a small local government agency in a secluded high desert town and would love to telecommute if needed. My current job requires me to supervise 8 people that do work that is very different than what I do, so I have a really hard time telling them what to do (how does an office jockey tell a heavy equipment mechanic how to do his job?) and if I do know how to do something I'd tend to rather just do it myself.... There are not many positions I could see myself moving towards in the future with this organization, and I don't want to spend 20 years with my current gig.

I have never been super into tech, many of the programmers I know where writing games in msDOS when they were 13, while I was riding my skateboard or going backpacking with my dad...so a fear I have is that I will be like a foreigner moving to a new country as an adult and never getting a solid grasp on the language or culture, but from what I've seen as an outsider looking in there are so many languages to become proficient in that hopefully I can become an expert at a few languages/frameworks to be useful to a company.

So my current plan of attack has been to utilize the free training of codecademy.com, and freecodecamp.com, reading blogs and Reddit posts about what I'm trying to do, while trying to learn about the different jobs out there I may enjoy.

When I was in high school I took some kind of weird computer class where we were learning dos programming, but the teacher would send a few of us that were more mechanically adept to run network cables from classrooms to a central server. I have also been a bike mechanic, an Air Force bomb builder, and I was a grease monkey (tires, brakes and oil) at the Yosemite garage. So I'm a bit of a mechanically minded guy, but overall I'd say I'm a jack of all trades person. I really love learning new skills and problem solving, which I believe make for good traits of a programmer.

What little I have learned in doing html, CSS, bootstrap and JavaScript lessons over the past few weeks has been super fun and I quickly get into that glorious flow state of project mode.

From what I've read it's really good to get solid at a "hard" base language like C++ so that the functions In a framework make more sense. I'm also currently going through this book: Think Like a Programmer which at the very least gives me an idea of what programming should be, utilizing the languages to solve a problem.

From what I've read is that a lot of people out there become adept at a language, but they don't really know how to use that language to create programs, or solve a problem. I would like to start off in the right direction. . .

Any advice?
WyoRockMan

climber
Grizzlyville, WY
Sep 17, 2016 - 08:45am PT
Remove the "s" in your attempted hyperlink?
skitch

Gym climber
Bend Or
Topic Author's Reply - Sep 17, 2016 - 08:48am PT
WyoRockMan: Remove the "s" in your attempted hyperlink?

Why is that? The Amazon webpage has an "s" at the end of https, is it just something about the SuperTopo formatting tag?

edit: never mind, and thank you google: HTTP VS HTTPS. Hyper Text Transfer Protocol Secure (HTTPS) is the secure version of HTTP, the protocol over which data is sent between your browser and the website that you are connected to. The 'S' at the end of HTTPS stands for 'Secure'. It means all communications between your browser and the website are encrypted.
curlie

Trad climber
SLO, CA
Sep 17, 2016 - 08:58am PT
If you already gravitate toward more mechanical things, I'd suggest grabbing an Arduino and a kit of parts and screwing around with it. The Arduino code language is C, just made a little more friendly with libraries and functions that promote user-readable code. And while you're learning, you'll have the satisfaction of making lights blink and sh#t do things. There's great online support - plenty of kits, books, forums, and tutorials.

https://www.arduino.cc/
zBrown

Ice climber
Sep 17, 2016 - 09:17am PT
All programming is just syntax and data structures supplemented with logic.

To me the lower the level (I wouldn't touch e.g. machine code) the higher the level of annoyance for me.

I liked building applications.

Good luck.

If I were to go back to work I think security oriented work would be the most interesting.



johntp

Trad climber
socal
Sep 17, 2016 - 09:32am PT
Dood, I cannot address your question. Not in that line of work.

But, with an MS in Environmental Engineering and a BS in Civil Engineering, you should be able to write your own ticket in either field. Try looking at government positions in the Seattle/Portland areas. Just my two cents.
ms55401

Trad climber
minneapolis, mn
Sep 17, 2016 - 10:26am PT
could be too old to be anything but mediocre. I mean, you could be 50 by the time you are even okay

you evidently have formal training in engineering. that's no less remunerative than programming -- at least compared to the crappy, low-level coding jobs you likely would see -- so why not stay with that
johntp

Trad climber
socal
Sep 17, 2016 - 10:37am PT
Salaries for someone with your educational background in Engineering are around $150k/year. What more do you want?
ShawnInPaso

climber
Paso Robles, CA
Sep 17, 2016 - 12:09pm PT
I think fivethirty sums it up nicely. Here are a few more points to consider.

When I was in my late 30's I went back to school to learn computer science. I subsequently became an application programmer / DBA for a large corporation. The biggest mistake I made was accepting the role of supervisor after a few years in the job, basically ending my coding career.

Anyway, I subsequently did a lot of hiring. When reviewing resumes I would look for an individuals depth of understanding about programming, which is an indicator of ability to quickly learn new languages (i.e. knowing machine code, C++ or Java).

When conducting job interviews, I would spend 20% of the time validating that the person has good programming skills (easy to do), and 80% of the time making sure the person is a good fit for the job (personality, work ethic, compatible with the company goals, etc).

I hired people right out of college and people well into their 50's, if you can get the job done, age is of no concern.

Also, if you don't know SQL then your limiting your range of jobs significantly.

Oh yeah, don't accept a supervisory job even if it pays a lot more !
NutAgain!

Trad climber
South Pasadena, CA
Sep 17, 2016 - 12:12pm PT
For the last 25 years I've done a mix of weenie-level software development (to solve specific problems I encountered in my job or to automate boring stuff), advanced enterprise networking, systems integration work across a range of technologies (Linux, database, networking, phone systems, web development,), product management, etc. Here are some thoughts based on my experience:

 entry level coders and programmers are a dime a dozen. You would be competing against folks in Romania or India making close to minimum wage or less (ESPECIALLY if you want to work remotely)
 what distinguishes you as a programmer, to help you make more $$$, is having in-depth knowledge of algorithm analysis and broad system architecture experience, and some niche field expertise and experience that shows you can create a vision for an end to end solution using teams of those "dime a dozen" developers, and actually build it. The position to be at your age is the guy working with a few other people at a whiteboard to chart out how different systems will interact, to develop a language or protocol or choose amongst a range of pre existing ones to get done what you need to get done. That would be based on the knowledge of 5-10 or more years of building stuff out of those building block components so you have a clear vision of the strengths and weaknesses of different approaches and can make the right decisions before the entry-level programmers have spent a month coding up something.

That is what you are up against if you want to get paid well as a developer/programmer.

So if you want to shift in that direction:
1. Find problems where you can leverage your mechanical or civil experience to stand out from the pack of plain old developers. To find "problems" to solve in your field, look for boring repetitive tasks where people sometimes make mistakes and see how it can be automated.
2. Or be prepared to make a "lifestyle" career choice where you accept a big hit on pay to be able to do lower level jobs that might permit you to work remotely but not have as much responsibility or complexity in knitting together bigger systems. In this case, web developer flavor of the day is probably good... Ruby on Rails, nodejS, or the "new thing" that a lot of VCs see for new projects with no legacy code is Google Go. But I just checked out Google Go and figured out its a pain in the ass if you just want to develop a simple dynamic website when there is already an Apache webserver.

Good luck!

Edit: check out your competition... Go to http://odesk.com to see what other freelancers have done and what they get paid. I just saw a highly rated senior RoR (ruby on rails) guy gets $30/hr. It would take you a few years to be at a comparable level- and don't know if this would be considered good or bad pay for you.
jgill

Boulder climber
The high prairie of southern Colorado
Sep 17, 2016 - 01:53pm PT
I don't have anything of substance to add, merely a few reflections. I got my intro to programming (and coding) in 1962 at the U of Alabama, using Bama Bell language. This ghastly experience would have terminated any interest in programming had the personal computer not been developed. Almost all the programming I have done has been mathematical algorithms and graphics, and I have used Fortran, Pascal, C++, Mathematica, and various versions of BASIC. For the last twenty years I have used Microsoft BASIC, QuickBASIC, VisualBASIC, and now Liberty BASIC.

I have found that low-level languages like BASIC provide fundamental building blocks for my rather unusual mathematical investigations.

I would think the ability to create algorithms that can be programmed would be the greatest asset for work in the field.
Al Barkamps

Social climber
Red Stick
Sep 17, 2016 - 02:05pm PT
.....and would love to telecommute

The problem is that your competition telecommutes from India, China, and Russia. They can do this work for a fraction of what you'd bill out, and might even do it 5X better. Unless, of course, you end up working for an outfit that keeps all of their programming work in-house. Like a military contractor.

If you're going to do any kind of programming, stick with security, admin., and stay away from engineering applications unless you plan on getting a company to foot the bill for a security clearance.
August West

Trad climber
Where the wind blows strange
Sep 17, 2016 - 02:30pm PT
Are you smart enough to be a good programmer? Civil engineering is not a plus on the hiring checklist.

If you are trying to compete with the 20 something's doing generic/cutting edge programming, I think it's going to be tough to get up to speed and get hired.

But you ought to consider trying to find a niche market in civil/environmental engineering. There are a lot of specialty programs out there that are hard for a generic programmer to work on if they don't have a background in that specific field.

These types of programs are going to be mostly java, C++, and maybe C# (which is the Windows/Visual Studio version of C++). C# would have a somewhat easier learning curve.
August West

Trad climber
Where the wind blows strange
Sep 17, 2016 - 02:35pm PT
and stay away from engineering applications unless you plan on getting a company to foot the bill for a security clearance.

I'm not seeing why you would need a security clearance for most civil (on the water/waste water side) or environmental stuff.

I think the engineering background gives him the best shot of competing with other people who will have better computer skills.

For small specialty software, it isn't worthwhile to contract it out to India.

Although it tends to be easier to telecommute after you have physically worked at an office for a while. Getting hired from day 1, in a field you are new to, as a telecommuter will probably be a hard sell.

Somebody mentioned it above, being very familiar with source control software would help.
Al Barkamps

Social climber
Red Stick
Sep 17, 2016 - 06:15pm PT

I'm not seeing why you would need a security clearance for most civil (on the water/waste water side) or environmental stuff.

I've come from the environmental/civil field and there's not a single application in either of those fields that's not custom served by some off-the-shelf routine. My three kids all 2 years apart have graduated with engineering degrees so I've followed the want ads for a number of years through 1/2 dozen web services for a 10 different (mountain-states) zip codes and I can tell you that over %75 of the demand for electrical, mechanical, and computer engineers is driven by defense contractors for the following fields: Aerospace, battle theater, and cybersecurity.

Aside from those fields, this country doesn't make sh1t anymore, academic hyperbole notwithstanding. If you want a solid insight into what programmers are thinking, I suggest that you hang around some of the code builders forums like stackoverflow or code.org. You'll get to hear firsthand what a lot of these guys would do now, if they could.
deuce4

climber
Hobart, Australia
Sep 17, 2016 - 06:29pm PT
My advice: don't!

Actually, I have always been drawn to programming, ever since I discovered I could do entire term programming assignments in a single evening (like the traveling salesman problem), with perhaps only one or two bugs to work out after writing out 300+ lines of code in a continuous go (that was back when entire programs had to be written, then compiled and run on mainframes, 1982 at Stanford. No "code completion" and other cheats!).

In more recent times, I spent 4 years making a marginal living as a GIS and iPhone programmer specializing in maps. It's a tough business, and you are competing against global talent who are working for crazy low wages. I do enjoy the design aspect of the process, and how easy it is to attain flow while programming, but it's hell on a relationship because you can get lost in the process for days at a time. That's my experience, anyway.

Better to step back a pace, find a niche software application, and find programmers to do the code while you oversee the interface. It's harder than one would think to do both.

Just my opinion and thinking if I ever got back into software business...

Edit: here's my 2008-2012 stuff: http://www.johnmiddendorf.net/gis-mapping.html
NutAgain!

Trad climber
South Pasadena, CA
Sep 17, 2016 - 11:21pm PT
My last post was probably discouraging... Here's another example that would be more inspiring.

My dad retired from 30 years working in the defense industry, essentially a program manager dealing with paperwork and some problem solving of radar systems in fighter planes. At the very end he started learning some basic webpage and development stuff as a hobby. He got bored after retiring and started volunteering at a computer lab for seniors at a nearby college. He learned about storage networking and ended up with a full-time job at EMC, traveling full-time building systems for various customers, and branched out into network management systems. He did that stuff for about 10 years and just retired again. Now he feels done with work for good and spends most of his time touring the western U.S. on a Harley.

So in the end, it comes down to what is inside of you and what you want to do (as long as that overlaps with what people need and are willing to pay for).
healyje

Trad climber
Portland, Oregon
Sep 18, 2016 - 02:35am PT
The best approach for the longer term is to add programming to the domain expertise you already have and build on bringing them together. Programmers are a dime a dozen, but programmers with in-depth domain knowledge are not. Figure out what needs to be done in your world that's underserved and head in that direction. If you want to get out of Bend, them maybe head over to PDX and get on with Clean Water Services, or Vegas at the Clark County Water District and work laterally. Or develop some skills and apps in place where you are and then try to find some form of green / sustainable software startup.
Gunkie

Trad climber
Valles Marineris
Sep 18, 2016 - 04:42am PT
duece4 said...
In more recent times, I spent 4 years making a marginal living as a GIS and iPhone programmer specializing in maps. It's a tough business, and you are competing against global talent who are working for crazy low wages.

In the US, this is known as the H1B labor force. H1B visas were intended to help tech firms hire talent from outside of the US because American kids were too interested in earning degrees in art literature and finance and not enough engineers or computer science majors were being churned out. As it is, firms are massively abusing the H1B system leading to depressed wages for coders.

With a BS in Civil Engineering and a MS in Environmental Engineering, pick up coding as a hobby because it is exceptionally fun but go leverage your contacts in the environmental engineering world and develop a consulting business doing GC work in local water table remediation; there should be more than enough work in the California central valley to keep you busy for many decades, or just about anywhere else.
skitch

Gym climber
Bend Or
Topic Author's Reply - Sep 18, 2016 - 01:25pm PT
Well this is a lot of (discouraging) info to process.

Am I smart? Not especially, when I was a kid my IQ was tested at 130, so slightly above average, which is probably baseline for the geniuses of supertopo.

The problem with my current gig is that it is only adjacent to my degree and definitely not of much interest to me (or likely anyone else). I get paid fairly well, $77k a year, and I'm maxed out, unless I can greatly reduce a $110,000 consultant contract...which may increase my pay by 10-20%!!! I have no interest in my bosses job. I mostly deal with attempting to supervise heavy equipment operators and landfill gate attendants...and complete reports for regulatory agencies. The rest of my time is mostly spent in contract management or listening to my self absorbed boss tell me the same long-winded story about one of the shitty cars he owned and how he got a great deal on it or about some Beatles trivia...fortunately he loves to start these 45 minute conversations 10 minutes before the end of the work day!

So needless to say; I am getting almost zero experience in engineering and I do not work under a PE.

The interwebs makes it sound like there are unlimited opportunities in the tech industry, but as most of you pointed out there is also an unlimited population of people on the other side of the Pacific getting better educations than I did, willing to work for cents.

I have found two acquaintances that live in town who LOVE programming and are excited to guide me if I pursue this line of work. Hopefully I can stay excited about it, and at the very least I can learn enough coding to help myself out, I'm regularly wanting to do something with my computer that coding would assist me. I also need to re create my work website, which sucks!
Messages 1 - 20 of total 59 in this topic << First  |  < Previous  |  Show All  |  Next >  |  Last >>
Return to Forum List
 
Our Guidebooks
spacerCheck 'em out!
SuperTopo Guidebooks

guidebook icon
Try a free sample topo!

 
SuperTopo on the Web

Recent Route Beta