Author Topic: Software Developers question.  (Read 3587 times)

TexasRunner

  • Pencil Stache
  • ****
  • Posts: 927
  • Age: 27
  • Location: Somewhere in Tejas
Software Developers question.
« on: September 20, 2016, 04:27:52 PM »
Hey guys,

I'm currently on a different life route pursuing a master's degree in a different field, but there are some opportunities at my primary job that have caught my attention.  We need to replace a few software developers.  I don't have coding experience and do not yet know how to 'speak'- but I am fairly sure I would enjoy that work.  I am very technically minded (currently a metal building detailer in Tekla Structures, basically a drafter but with much more complex work) and am very good with math and general computing.  I already have some experience in spreadsheet development in excel.

My questions:
On average, how long would it take for me to know if I was a 'good fit' for software development?
On average, how much does it cost to pursue this route?
And finally, has anyone used Udacity? (https://www.udacity.com/nanodegree)

Feel free to facepunch me for my current direction of a Master's degree without being sure (though I enjoy what I have studied).  Not sure what I want out of life right now and just want to bounce a few things around.

Also, my employer would reimburse the costs of udacity and I could probably convince my employer to let me study/work on projects on the job (we are slow right now and for the foreseeable future).

Thanks in advance.

seattlecyclone

  • Magnum Stache
  • ******
  • Posts: 4723
  • Age: 34
  • Location: Seattle, WA
Re: Software Developers question.
« Reply #1 on: September 20, 2016, 05:36:20 PM »
Teaching yourself is a valid path. There are online things like Udacity, or even books that lead you through a simple development project end to end. I think the hardest thing for a self-taught developer career-wise is finding that first job. Big companies often aren't willing to take a risk on someone without a CS degree or previous experience. However if your employer is willing to let you spend some of your time on software development to try and learn as you go, that's a great situation to be in. Once you have a couple years' experience on the resume, you're in a good position to apply pretty much anywhere.

ender

  • Magnum Stache
  • ******
  • Posts: 4605
Re: Software Developers question.
« Reply #2 on: September 20, 2016, 05:39:30 PM »
Teaching yourself is a valid path. There are online things like Udacity, or even books that lead you through a simple development project end to end. I think the hardest thing for a self-taught developer career-wise is finding that first job. Big companies often aren't willing to take a risk on someone without a CS degree or previous experience. However if your employer is willing to let you spend some of your time on software development to try and learn as you go, that's a great situation to be in. Once you have a couple years' experience on the resume, you're in a good position to apply pretty much anywhere.

+1 to this.

Do something useful with scripts/automation at your current job. Nearly EVERYTHING can be improved. Work with Excel? Play with VBA some. It's a great place to try programming and a really good environment. It's how I got started down the rabbit trail ending as me in software development.

Barring that, why are you certain you would enjoy that work?

TexasRunner

  • Pencil Stache
  • ****
  • Posts: 927
  • Age: 27
  • Location: Somewhere in Tejas
Re: Software Developers question.
« Reply #3 on: September 21, 2016, 10:24:49 AM »
Barring that, why are you certain you would enjoy that work?

I am pretty darn technically minded.  I was moved from regular detailing (where you fit the building together like a big puzzle) into a different role that focuses on seeing problems before they exist and visualizing situations without seeing them in a model.  Its a very intuitive-type job.  In addition to this, I like computers and really like making them do my work for me.  I have already dabbled in macros in excel and done some VBA and enjoyed it. 

Lets be honest, the other part is pay.  I can spend another 4-5 years pursuing my master's and doctorate in psychology and graduate making what a software engineer at my company makes right now.  I would put 20,000-30,000 dollars (at least) into my degree, extending date to FIRE by about 13-17 years (making it about 20 years from now) between opportunity costs and lower pay.  Whereas if I pursued software engineering, I could make 90,000 base pay a year within 2-3 years at my current company, with another 10k in 401k benefits, FIRE in 9 years or less and then pursue my doctorate if I still wanted too.  I probably would.

Current Route:
4-5 years more school
Phd in Psych lands me around 100k a year but doesn't start for 5 years
Phd requires (very) low paying clinical duties for at least 9 months
Fire date lands around 2033

Possible Route:
1.5 years of training/learning
Software development lands me 90k a year in a year or so.  Probably more after that
Speed up fire significantly
Fire date lands around 2026, sooner if I go back to school and continue (lower-paying) paid work.  Also sooner if I make more than 90k (very likely)

ender

  • Magnum Stache
  • ******
  • Posts: 4605
Re: Software Developers question.
« Reply #4 on: September 21, 2016, 12:07:03 PM »
Why not talk to your current company?

Maybe you have some sort of "apprentice" like role or analyst or "not quite dev" position?

TexasRunner

  • Pencil Stache
  • ****
  • Posts: 927
  • Age: 27
  • Location: Somewhere in Tejas
Re: Software Developers question.
« Reply #5 on: September 21, 2016, 12:36:27 PM »
I'll check in on it.  Probably wont be able to do that and continue school simultaneously.  Its already friggin difficult enough.

Thanks for the advice.

CowboyAndIndian

  • Handlebar Stache
  • *****
  • Posts: 1344
  • Location: NJ, USA
    • KOWines: Deep discount wine/spirits store.
Re: Software Developers question.
« Reply #6 on: September 21, 2016, 01:15:32 PM »
First of all find out what skill sets are needed in your company.

Is it Web work? Java or C++. It is a Unix or a Windows shop. Decide if this is what you want to do (I hate Windoze, will only work on Unix/Linux).

Try codeacademy and get some hands on development.

Build some projects in your own time which could help your company. See if this gives you an opening. It could possibly be part time.
« Last Edit: September 21, 2016, 01:47:22 PM by CowboyAndIndian »

TexasRunner

  • Pencil Stache
  • ****
  • Posts: 927
  • Age: 27
  • Location: Somewhere in Tejas
Re: Software Developers question.
« Reply #7 on: September 21, 2016, 07:07:10 PM »
First of all find out what skill sets are needed in your company.

Is it Web work? Java or C++. It is a Unix or a Windows shop. Decide if this is what you want to do (I hate Windoze, will only work on Unix/Linux).

Try codeacademy and get some hands on development.

Build some projects in your own time which could help your company. See if this gives you an opening. It could possibly be part time.

Signed up at codeacademy.  Completed 30% of the html and css course today.  Thank you VERY much for the link.  I like what those guys are doing (because free!!!).

I work with a supervisor that was previously a software engineer for my company (actually the specific position I'm aiming for). Planned on asking him some of the specifics you asked but he was in interviews all day.  I will update once I speak to him.

MrSal

  • Pencil Stache
  • ****
  • Posts: 837
Re: Software Developers question.
« Reply #8 on: September 21, 2016, 07:26:42 PM »
wow im folloiwng this... if you graduate with udacity... is that credible at all to put on your resume? would taking a course from them help you at all to land a job in the course you took with them?

MrSal

  • Pencil Stache
  • ****
  • Posts: 837
Re: Software Developers question.
« Reply #9 on: September 21, 2016, 07:29:50 PM »
it seems the nano Plus would be the best route because they say if they dont get you a job theyd refund you? no downside in terms of costs at all and puts pressure on their part to connect you to an employer and be hired.

MrSal

  • Pencil Stache
  • ****
  • Posts: 837
Re: Software Developers question.
« Reply #10 on: September 21, 2016, 07:33:54 PM »
this would be a match made in heaven for me:

https://www.udacity.com/course/data-analyst-nanodegree--nd002?v=a2

I already do this manually when studying patterns on financial markets... always did it manually though and a little bit of excel to help out calcs and find deviations, etc ...

TexasRunner

  • Pencil Stache
  • ****
  • Posts: 927
  • Age: 27
  • Location: Somewhere in Tejas
Re: Software Developers question.
« Reply #11 on: September 21, 2016, 07:53:54 PM »
I already do this manually when studying patterns on financial markets... always did it manually though and a little bit of excel to help out calcs and find deviations, etc ...

Same here (except with job tracking for my work).  Check into codeacademy as recommenced above.  I tried it out today.  Completely free.  :)

As far as Udacity goes...  we shall see.

TexasRunner

  • Pencil Stache
  • ****
  • Posts: 927
  • Age: 27
  • Location: Somewhere in Tejas
Re: Software Developers question.
« Reply #12 on: September 22, 2016, 09:58:54 AM »
So I asked what we use.  Pretty much everything we do is C++ now.  The base software is Linux but it is very unlikely I would need to go into it (and others plus our vendor are available if something needs to be done that deep).  They previously wrote in C-minus but made the switch over the last few years.  I will roll the rest of the way through CodeAcademy and start digging in to C++ to make sure I like the work.

CowboyAndIndian

  • Handlebar Stache
  • *****
  • Posts: 1344
  • Location: NJ, USA
    • KOWines: Deep discount wine/spirits store.
Re: Software Developers question.
« Reply #13 on: September 22, 2016, 10:30:00 AM »
So I asked what we use.  Pretty much everything we do is C++ now.  The base software is Linux but it is very unlikely I would need to go into it (and others plus our vendor are available if something needs to be done that deep).  They previously wrote in C-minus but made the switch over the last few years.  I will roll the rest of the way through CodeAcademy and start digging in to C++ to make sure I like the work.

Ok, C++ is at the top for pay, but limited jobs. You are about 15 years too late for the C++ peak.
I still get calls for C++ programming since is so difficult to get folks for it.

In terms of easiest to hardest, C++ is at the top. This is what low to high looks like

Perl/Python-> Java -> C ->C++ ->Assembler

Also, there is nothing called C-Minus, most probably it is C they were talking about (or was it a derogatory name for C#, pronounced C-Sharp ?)


Jack

  • Magnum Stache
  • ******
  • Posts: 4734
  • Location: Atlanta, GA
Re: Software Developers question.
« Reply #14 on: September 22, 2016, 10:54:21 AM »
I'm currently on a different life route pursuing a master's degree in a different field, but there are some opportunities at my primary job that have caught my attention.  We need to replace a few software developers.  I don't have coding experience and do not yet know how to 'speak'- but I am fairly sure I would enjoy that work.  I am very technically minded (currently a metal building detailer in Tekla Structures, basically a drafter but with much more complex work) and am very good with math and general computing.

So I asked what we use.  Pretty much everything we do is C++ now.  The base software is Linux but it is very unlikely I would need to go into it (and others plus our vendor are available if something needs to be done that deep).  They previously wrote in C-minus but made the switch over the last few years.  I will roll the rest of the way through CodeAcademy and start digging in to C++ to make sure I like the work.

Oooh, that's interesting! What sort of software development does this company do? I'm guessing it's some sort of in-house plugin or tool that you use in your drafting workflow.

I work as a software engineer for a competitor to Tekla, so I could probably be pretty helpful if you want to ask more specific questions.

Ok, C++ is at the top for pay, but limited jobs. You are about 15 years too late for the C++ peak.
I still get calls for C++ programming since is so difficult to get folks for it.

C++ is still the standard in the CAD/BIM industry, and IMO that's unlikely to change any time soon. And that's if you're lucky -- I'm sure there's still lots of Fortran code if you dig deep enough into some of the products.

CowboyAndIndian

  • Handlebar Stache
  • *****
  • Posts: 1344
  • Location: NJ, USA
    • KOWines: Deep discount wine/spirits store.
Re: Software Developers question.
« Reply #15 on: September 22, 2016, 11:18:49 AM »
Ok, C++ is at the top for pay, but limited jobs. You are about 15 years too late for the C++ peak.
I still get calls for C++ programming since is so difficult to get folks for it.

C++ is still the standard in the CAD/BIM industry, and IMO that's unlikely to change any time soon. And that's if you're lucky -- I'm sure there's still lots of Fortran code if you dig deep enough into some of the products.

I probably was not clear, but the point I am trying to make is that OP needs to hit the sweet spot where you are paid high, but there are plenty of jobs available if you want to move.

In terms of career advancement/job opportunity, I would definitely look for technologies where the jobs are not in niche industries (ie, not many jobs or chances to job hop) and where the pay is high.

Unfortunately, since there is not much new C++ development, most of the work will be maintaining older code and writing small updates. For a software developer who likes to build things, this is quite a let-down. That is why I do not take those jobs  even with the higher money being offered.

On the other hand of Jobs/Pay sweet spot, you can find Java programmers for a dime a dozen. There are too many of them and the pay is much lower.

ender

  • Magnum Stache
  • ******
  • Posts: 4605
Re: Software Developers question.
« Reply #16 on: September 22, 2016, 11:21:19 AM »
However, C++ isn't really a language I'd ever suggest people learn as their first language.

A whole variety of reasons.

TexasRunner

  • Pencil Stache
  • ****
  • Posts: 927
  • Age: 27
  • Location: Somewhere in Tejas
Re: Software Developers question.
« Reply #17 on: September 22, 2016, 11:55:01 AM »
Ok, C++ is at the top for pay, but limited jobs. You are about 15 years too late for the C++ peak.
I still get calls for C++ programming since is so difficult to get folks for it.

In terms of easiest to hardest, C++ is at the top. This is what low to high looks like

Perl/Python-> Java -> C ->C++ ->Assembler

Also, there is nothing called C-Minus, most probably it is C they were talking about (or was it a derogatory name for C#, pronounced C-Sharp ?)

Ahh, yes.  He was probably being derogatory towards C# or C.  Not sure which.  Either way, that's not what we are on now.

If the market moves in 'waves' (which makes sense), what came immediately before and after C++?  Assembler?  Also, you say that there is a low job market for Cpp but then also state that it is hard to find people to fill those jobs.  That seems contradictory...?  Are you basically saying there is little demand for C++ and because of that there are significantly fewer options out there, but it is still easy to find a job?  Just curious.

Oooh, that's interesting! What sort of software development does this company do? I'm guessing it's some sort of in-house plugin or tool that you use in your drafting workflow.

I work as a software engineer for a competitor to Tekla, so I could probably be pretty helpful if you want to ask more specific questions.

Ok, C++ is at the top for pay, but limited jobs. You are about 15 years too late for the C++ peak.
I still get calls for C++ programming since is so difficult to get folks for it.

C++ is still the standard in the CAD/BIM industry, and IMO that's unlikely to change any time soon. And that's if you're lucky -- I'm sure there's still lots of Fortran code if you dig deep enough into some of the products.

Bingo!  Its plugins for our primary software, automating a vast majority of the detailer's workload where they essentially become checkers of the output.  I'm guessing your referring to SolidWorks... (And hopefully not CAD :p)  Always interesting to see how the other half lives... :)  There is still a TON of work to do for our software, and lots of back-fixing to do in the code to make it faster and more predictable.  Our entire set of plugins is less than 2 years old so there is plenty of work here.  Haven't investigated the job market outside of my own company for C++ but I figure with a metal buildings background I could get on at several different places for the same line of work and around the 80k-100k mark.  I recognize this direction wouldn't net the 160-250k that some people on here talk about but I am ok with that (at least for now).

Ok, C++ is at the top for pay, but limited jobs. You are about 15 years too late for the C++ peak.
I still get calls for C++ programming since is so difficult to get folks for it.

C++ is still the standard in the CAD/BIM industry, and IMO that's unlikely to change any time soon. And that's if you're lucky -- I'm sure there's still lots of Fortran code if you dig deep enough into some of the products.

I probably was not clear, but the point I am trying to make is that OP needs to hit the sweet spot where you are paid high, but there are plenty of jobs available if you want to move.

In terms of career advancement/job opportunity, I would definitely look for technologies where the jobs are not in niche industries (ie, not many jobs or chances to job hop) and where the pay is high.

Unfortunately, since there is not much new C++ development, most of the work will be maintaining older code and writing small updates. For a software developer who likes to build things, this is quite a let-down. That is why I do not take those jobs  even with the higher money being offered.

On the other hand of Jobs/Pay sweet spot, you can find Java programmers for a dime a dozen. There are too many of them and the pay is much lower.

I would be okay with entering into the industry through this window.  My specific circumstances allow for creation rather than just maintenance and I can always learn more and expand if I need or want too.  What would be good to learn aside (or in addition to) Cpp?  Where is the industry going?

However, C++ isn't really a language I'd ever suggest people learn as their first language.

A whole variety of reasons.

I would like to hear the reasons if you wouldn't mind.  If I go this route, I plan to learn html and css, practice some in that with a few mini projects, then learn Java, then expand into Cpp.  Is that necessary?  Is java unnecessary?  Thanks!



Thanks for all the info guys. Very VERY useful.

seattlecyclone

  • Magnum Stache
  • ******
  • Posts: 4723
  • Age: 34
  • Location: Seattle, WA
Re: Software Developers question.
« Reply #18 on: September 22, 2016, 12:39:27 PM »
As a first language, C++ has a bunch of fiddly bits that make certain things harder to do, which means you're often spending more time learning C++ (the language) than learning programming (the concept).

On the flip side, once you learn C++, it's pretty easy to switch to most other common languages. The reverse is not as true.

Jack

  • Magnum Stache
  • ******
  • Posts: 4734
  • Location: Atlanta, GA
Re: Software Developers question.
« Reply #19 on: September 22, 2016, 01:01:56 PM »
Ok, C++ is at the top for pay, but limited jobs. You are about 15 years too late for the C++ peak.
I still get calls for C++ programming since is so difficult to get folks for it.

C++ is still the standard in the CAD/BIM industry, and IMO that's unlikely to change any time soon. And that's if you're lucky -- I'm sure there's still lots of Fortran code if you dig deep enough into some of the products.

I probably was not clear, but the point I am trying to make is that OP needs to hit the sweet spot where you are paid high, but there are plenty of jobs available if you want to move.

In terms of career advancement/job opportunity, I would definitely look for technologies where the jobs are not in niche industries (ie, not many jobs or chances to job hop) and where the pay is high.

Unfortunately, since there is not much new C++ development, most of the work will be maintaining older code and writing small updates. For a software developer who likes to build things, this is quite a let-down. That is why I do not take those jobs  even with the higher money being offered.

That's not how it works in this industry: there is still a huge number of "new things" that need to get built (on the forefront of computer science, no less: large-scale simulation, augmented reality, AI, etc.), but the existing codebases are way too big to throw out and start over. Besides, the prevailing perception (not that I agree) is that managed languages like C# would be too slow anyway.

If the OP is in the CAD/BIM industry and wants to stay there (as opposed to getting some random software dev job that has nothing whatsoever to do with his Tekla Structure drafting skills), then C++ is the language to learn. And IMO, being in that niche between software dev and some specific problem domain is exactly the right career strategy.

(That said, I agree with Ender that it's not the best language to learn first. The OP's goal is definitely not an easy one.)

If the market moves in 'waves' (which makes sense), what came immediately before and after C++?  Assembler?  Also, you say that there is a low job market for Cpp but then also state that it is hard to find people to fill those jobs.  That seems contradictory...?  Are you basically saying there is little demand for C++ and because of that there are significantly fewer options out there, but it is still easy to find a job?  Just curious.

In the CAD industry, the progression was probably something like Fortran -> C++. Before Fortran, computers weren't really capable of CAD anyway (at that point we're talking about mainframes using punchcards and line printers for I/O).

IMO the real issue is that the CAD industry is small compared to the "social web app du jour" or "boring as shit line-of-business application" industries.

I'm guessing your referring to SolidWorks... (And hopefully not CAD :p)  Always interesting to see how the other half lives... :)

I'm not sure if this is a response to my "I work for a competitor to Tekla" comment or my "Fortran if you're unlucky" comment.

(I hesitate to reveal my employer publicly on the Internet, but it isn't SolidWorks either.)

I would be okay with entering into the industry through this window.  My specific circumstances allow for creation rather than just maintenance and I can always learn more and expand if I need or want too.  What would be good to learn aside (or in addition to) Cpp?  Where is the industry going?

As for "where is the industry going," I'd say higher levels of design (e.g. attempting to automate the job you do as a detailer so that the architect can just draw the building and generate shop drawings himself that aren't nonsense), augmented reality so that clients can walk around in their building before it gets built, computer vision so that a robot can scan the structure and the software can automatically generate as-built drawings, analysis (structural, energy, etc.) incorporated more quickly and earlier in the workflow so that (for example) the architect can site his building for passive solar or figure out that the ridiculous cantilever he wants to do isn't going to work while he's still in the space planning stage of the design... stuff like that.

However, C++ isn't really a language I'd ever suggest people learn as their first language.

A whole variety of reasons.

I would like to hear the reasons if you wouldn't mind.  If I go this route, I plan to learn html and css, practice some in that with a few mini projects, then learn Java, then expand into Cpp.  Is that necessary?  Is java unnecessary?  Thanks!

First of all, HTML and CSS are not programming languages. They're markup languages -- they are used to create documents, not programs. They're so easy to learn that there's no harm in doing so, but you shouldn't expect them to be relevant in any way unless your job is something like "write some glue code to extract the code checking output from this model and stick it in a web page" (which might very well be a good starting/intermediate project for you, actually...).

Second, the thing about C++ is that it's kind of the "kitchen sink" of programming languages. It's got so many different features and there are so many styles of doing things in it that it's almost possible for two different programmers to both be competent at their own subset of C++ but unable to read each other's code. It also spans the gap between being simultaneously both a low-level language like Assembly (which is all about managing the fine details of the computer -- in particular, manually keeping track of where particular bits of data are placed in memory) and a high-level language like Java (which is all about creating abstract data types that model the problem domain). You need a lot of computer science background to be good at it, whereas it's easier to get by with less in other languages (and less complicated industries -- like that line-of-business stuff I mentioned before).

Third, "learning Java" (or "learning C++," for that matter) is the wrong way to go about the whole thing. "Learning object-oriented programming concepts and coincidentally implementing them in Java" is closer to what your goal should be. Before that, though, you should "learn about algorithms, functions iteration and recursion" using a language like Scheme or Python, and later you should not "learn C" but instead "use C to learn about pointers and memory management." By the time you do all that, being able to program in C++ (or any other language) means not much more than looking up the syntax.