How far off am I?
Long time listener. First time caller...
After a fifteen year career as a pilot, I lost my job last year and can't find another one. I went back to school and am taking C++ and intro to databases and everything else I can get my hands on, in order to catch up.
I have no background in technology or business, basically a pilots license with a pretty degree attached to it. Nothing applicable to the real world. For all intents and purposes, I am starting from square one and trying to make my way as a programmer. After eight months, I don't feel I know how to actually program anything.
Entry level jobs are looking for 1-2 years of programming experience and mentors are hard to find.
Am I blowing this out of proportion? Does anyone recall what it was like when they started out? I mean really started out?
Thanks.
Edit: Thank you for all the comments. You lose sight of the big picture from ground level. Just need to stay the course.
34 comments
[ 5.6 ms ] story [ 74.4 ms ] threadStarting from nothing, that process can take a couple years - you'll need some money somehow during the learning period, Make sure that's taken care of because the money won't come quickly as you learn.
I did almost exactly this, and it worked for me.
Use Python and write a program that prints the numbers from 1 to 100. Then change it so that when a number is divisible by 3 it prints "Fizz" instead. Then change it again so that when a number is divisible by 5 it prints "Buzz". If the number is divisible by both 3 and 5 have it print "FizzBuzz".
Then write it again in C++.
Now ask, how could your program be made simpler? How could it be made clearer? If someone came to it in 6 months time, what would the y need to know in order to assess whether it's doing the right thing?
If you can do all that effortlessly then you're a long way there and in need of a harder challenge that gives you some satisfaction. If it requires any real thought then you need lots and lots of practice at writing code.
I understand the need to practice code and take to it religiously. My wife hated when I was gone all the time. Now I am home and she hates that I am on the computer. You are right about increasing the level of difficulty. Thanks.
Just to get a feel for the kind of code you write, perhaps you could take this little challenge:
If you're brave you can post your code here ...Apart from that, the challenge is to decide what kind of job you want, then make sure you develop a resume to get it. If you want a web developer job then you have to write some web apps. If you want a systems programmer job then you need to write some slick algorithmic code.
Do you know what a B-tree is and when you would use it?
Just finished a Data Structures class and still wrapping my head around Trees and hashing.
Thank you, kindly.
<code> #include<iostream> using namespace std; int main() { for(int i = 1; i <= 100; ++i) { if(i%3==0 &&i%5==0) cout <<"Fizzbuzz ";
else if(i % 3==0) cout <<"FIzz "; else if(i%5==0) cout<<"buzz "; else cout << i << " "; } return 0; } </code>
Now here's a question: Do you find anything "unsatisfactory" about that code?
The looping sequence, I imagine, doesn't need the if else queries. Probably simpler way to code it. I am definitely untested with larger projects.
I wonder if there's some magic you could sprinkle in to the iterator so it only iterates through numbers which are divisible by 3/5, ignoring the rest?
It probably wouldn't speed the operation up much (if at all) in this case, in a more complex real world scenario though it's best to look at every angle.
Pretend that you're the computer and walk through the code in small steps, tediously detailed. Make sure you really understand what the code is doing.
What exactly happens when you execute "char *chPtr = new char;" ?
What exactly happens when you execute "delete chPtr;" ?
And why do I say that debugging well-written code is especially hard? Because the names, clarity and simplicity in well-written code seduce you into the same mindset as produced the code that has the bug.
I imagine you have myriad responsibilities in the course of your day and I am grateful for the time you are affording me.
I will work on this tonight.
Don't discount a 15 year career as a pilot - you might be able to get a job testing simulators for Lockheed, Boeing, or one of the others, and if you still want to write code you'll have your foot in the door already.
Is there any way you can leverage your domain knowledge? Work in avionics or games/simulation?
Programming is hard because you may understand the solution, but you don't know your equipment well enough yet to get you there.
If you know what kind of industry you want to work in (Games, Web, Enterprise) focus on the tools that are used in that industry (C++, Django, .Net). Once you zero in on these specifics it will be much easier to find a mentor/community, because a flight instructor is pretty useless if he doesn't know where the landing gear is.
http://www.colabopad.com
http://www.meshipu.com
http://www.codeproject.com/KB/cpp/visual_java.aspx
http://www.codeproject.com/KB/miscctrl/ruler_control.aspx
http://www.codeproject.com/KB/IP/videochat.aspx
http://code.google.com/p/rhythmote/
http://pugoob.blogspot.com/2008/01/pugoob-image-search-tool....
Just a sample of my work, doesn't include what I actually do at work. How long do you think it will take you to learn how to build the kind of software above? I would hazard a guess, it will be a looooooong time. I currently work as a System Architect and even so I am not considered a senior person. Programming is like athletics, after a certain age you really shouldn't pursue it as career. You can try to learn it as a hobby, but spend your time and energy on more attainable career goals in the short term. I hate to sound uninspiring but I have seen enough of this type of thing, mid-career people trying to find a lucrative career and thinking programming is the way to go, mostly it is a waste of their time. I am in an MBA class with someone who's about 33yrs old and is taking Oracle classes trying to get into the IT field, he is mostly likely wasting his time.
IF YOU MUST
Start with PHP not C++ (Not likely to get you a job anytime soon)
Learn how to setup an entire LAMP (google it) system first, you could install virtualbox on what I am sure is your windows system
Then try to create some website, maybe a dating site or something your neighbors might find useful.
Be prepared to spend a lot of time on web forums asking questions
Hope this helps clarify some things for.
That said, there is absolutely a shortage of C++ jobs... but this shortage has created an equal shortage of competent C++ programmers. We can't find C/C++ programmers to hire fast enough.
I will point out, however, that I decided to go straight into Lisp.
Given your unique experience, you could probably find niche pilot tools that could use help. Check out freshmeat.net and other sites to find projects that are both interesting to you and could benefit from additional input.
It doesn't particularly matter as long as its appropriate for your skill level (but still challenging)
Example: After taking my second ever programming course I decided I wanted to make an iPhone app. So I picked up two books, made a storyboard, a paper prototype, and then went for it. It was a cookie cutter "inspirational quotes" app but I learned a lot and I was proud of it!
Not quite true. I bet avionics companies (and plenty of others) would be very interested to talk to you.
My dad used to be a pilot and now works in technology, though he made the switch a few years ago now.
As for the programming, after learning the very basics you really have to write something and learn as you go. Try writing a little Android app. I bet you could without even knowing Java.
It could be that working as a programmer isn't right for you (maybe a business role related to aerospace), but if you kept it up on the side and used it as your "secret weapon" ^ you could be a real success. Good luck.
^ See Zed Shaw's thoughts on http://sheddingbikes.com/LearnPythonTheHardWay.pdf
Thanks again.
The great programs are made by the people who used to need them.
There is a lot of money to be made on those platforms; pilots are willing to pay for tools that help them, and non-pilots don't know what they need and can't easily produce such apps out of the blue. I bet you would also easily find a co-founder once you have concrete ideas / concepts.
Good luck.