For Those Who Wish to be Programmers? 88
Ryan asks: "I've been stuck in a helpdesk position at 3 different companies for the past 5 years. What I really would like to be doing is programming. At each job, I would write small programs or dynamic web pages in PHP with a MySQL backend, a few small Linux utilities for automating jobs and small Win32 programs, all written in C. Sure, these programs were popular with my fellow coworkers, my boss liked them, but my primary function there is to answer phones, and programming is secondary. I can not transfer to the 'programming department' because its located in another state, nor would I think that department would welcome me, only because I would be coming from a helpdesk. My programming is self-taught, and I don't have a diploma from a university. I'm 25, and have a family, night school is out of the question.
The market here (Danbury,-Connecticut) is dry, and HR wouldn't even look at my resume with out a degree. I know someone out there must have been in the same situation and some how gotten their foot in the door. What did you do? Any suggestions?" I'm sure there many on Slashdot who have been in this situation. If you wouldn't mind sharing your experiences on this matter, it would be appreciated. Share the ups and downs of your decisions and in particular, please answer the question: If you had to do it all over again, would you make the same decisions? Those interested in this topic may also wish to check out the the last article that touches on this subject.
How about testing? (Score:5, Interesting)
Re:How about testing? (Score:2)
School is your only hope. I know that you think you have no time, and that you must spend time with your family, but the fact is, that you have to pay bills, and put food in their mouth. However, if you are still in computers when you turn 40, you had better hope that you never get fired, or that you are never on the job market for any reason. It is idealistic to say that the degree doesn't matter, but the fact is, companies are letter go of better than you and those guys have degrees. A degree doesn't mean CEO, it's doesn't even really mean success. But it does generally mean that you don't have to answer your customers with a sentence that starts with 'would you like' and ends with 'with that?'
Re:How about testing? (Score:1)
Also I would pry not go to night school I would work the graveyard shift if you have one, trust me it is easier when you have a lot of responsibilities as you can 95% of the time in a help desk position study and do homework while this is next to impossible in a daytime position. Plus you get the advantage of seeing and picking up your kids after school depending on when you sleep. I've not worked a day shift in almost 3 years and I am almost finished with my chem engineering degree through 5 different colleges and 2 different states all I really have left is my lab work.
Re:How about testing? (Score:1)
Re:How about testing? (Score:1)
miss the damn preview button one time........
Get involved in a high profile OSS project (Score:2)
Re:a high profile OSS project - another reason why (Score:1)
A good open source project should expose you to that level of collaboration - in fact, it may put you ahead of some university graduates.
Change in title (Score:2, Insightful)
Titles don't really cost anything, but at least that way your resume (at first glance) will contain what looks like related job experience.
The problem is that most HR reps or placement agents don't have a clue about anything technical, and therefore need to look for objective measures of skill (degree, titles, etc.) Even though you and I know that a degree doesn't make somebody a good programmer, it's all they have to go on when trying to reduce a huge stack of underqualified applicants to a manageable amount to bring in for interviews.
Re:Change in title (Score:2)
And yes, I think this is moral to do, provided you really can put your money where your mouth is. You'll probably have to bust ass to meet expectations, but far be it from me to stop you from doing so.
look outside the company (Score:3, Interesting)
So, it may come down to choosing whether you would be happier with your current employer, or doing what you want to be doing for someone else. It wouldn't hurt to see what's out there, and if you get an offer then it might make your present employer see you in a new light.
Basically, the company is not going to go out of its way to move your career for you. You shouldn't expect them to. But most employers would be happy to work with you to put you where you will benefit them the most.
As this is happening, I recommend frequent practice. Try to keep abreast of current practices and new concepts and paradigms. Good luck.
If, in the process, you are to come across a Gandalf wallpaper where he looks stoned, please send me a link. Thanks.
build up a portfolio (Score:2)
Good luck!
careful what you wish for (Score:3, Funny)
Re:careful what you wish for (Score:1)
Re:careful what you wish for (Score:1)
HR people suck (Score:1, Interesting)
Thanks,
Travis
forkspoon@hotmail.com
Re:HR people suck (Score:1)
Imagine this scenario: you're a hiring manager who needs a programmer. You post an ad and get 500 resumes. You want to spend your time going through resumes? Why not give the HR guy some general guidelines to cut down that number?
I share your bias: I too hate HR goons. They typically don't know the nuts and bolts of what we do. But as long as they are gatekeepers, we must respect them as gatekeepers. And that means putting on a nice tie and suit, putting up with their stupid questions, and pretending that we're a good "fit" for the company in order to get an interview with the hiring manager who makes the decision.
Bite the bullet (Score:4, Informative)
Short term sacrifice for long term gain.
Jump Ship (Score:2)
Sounds to me as if your current company has typecast you as a HelpDesk person.
Break out of the mold by moving companies, even though it looks as if you'll end up having to change venue at the same time. That's easier when you're young and your family doesn't have deep roots into the locality.
Also, see if you can't collect some written references from those prior bosses who appreciated your little programming gems.
Those testimonials are necessary fodder for the wider search among an audience that doesn't know you and tends to default their evaluation criteria to "Got $Degree, In $Subject, With $GPA, From $Institution".
But insure your references "limit" their praise to those skills you're trying to expand upon, even if it doesn't do justice to your full range of skills if you were to include everything you can do on the HD.
You can easily see that it would do little good for them to write something along the lines of "wrote a few small great scripts and was one of the best of our 24 monkeys on the HellDesk!"
still a few options out there (Score:3, Insightful)
You said night classes are out of the question, what about part time in the day or at night? Correpsondance courses exist so you can work at home on your own time. (You can get a CS degree online now)
Remember one thing tho, alot of programmers aren't doing what 'they' wanted to do when they got into the field. (they're working on other technologies, mainframe, client-server, networking, etc..)
What you ask is hard, times have changed.... (Score:3, Interesting)
I can some what relate in that I have just a BS, but a Masters degree is what my company is interested in. Plus, I am classified as a test engineer, but would really like to program. I know it is hard, but even one course a semester would look great on a resume. It would tell your HR and higher ups that you are making an effort for a formal education. Heck, just taking two courses last year got me a pay raise.
This is the direction I am taking and I don't regret it. I am moderately happy in what I am doing, and have found persistantly bugging the higher ups for more programming to do doesn't hurt either. One final piece of advice I could offer is don't ignore the power of the web. Take on a moderately difficult task (in my case, creating interactive web sites for my boss and my old school) and then gloat about it as much as you can on a webpage along with a copy of your resume. This can get someone's attention as well!
Re:you're joking, right? (Score:1)
Guess what. In the evenings he teaches VB at the local community college. I feel sorry for his students.
Re:Talk to your boss or go to school (Score:2, Insightful)
If someone wanted to learn how to program all they need is a computer and some software. Hack away at some code until you understand what you are doing and then you're all set.
However if someone wanted to learn how to do an operation on a human, first they'd have to find someone willing to risk their life so they could practise on them. Then they'd also have to have all the equipment needed to. So you start hacking away at your patient, and you screw up, it's too late. If you screw up a program, so what? It's not going to do anything (note: I'm not talking about professional apps, I'm talking just learning code).
I believe a fully compentent doctor could be self taught, but since the facilities are inaccessable without an education, we aren't going to be seeing many of them any time soon.
Re:Talk to your boss or go to school (Score:2)
If you mean if someone wanted to learn some programming languages, then yes, but there is a reason why they call it computer science(i.e., lotsa theory and such, an understanding of what ought to be done in hardware and what ought to be done in software, etc.). There's a lot to be said for being self-taught, but in figuring out what to teach yourself and where to find it you waste a lot of time re-inventing the wheel.
Re:Talk to your boss or go to school (Score:1)
These kids pick up programming languages in a jiffy.
Concepts like recursion, unions, general structs are familiar b'se of a solid science (esp. math) background.
Set theory? Yep, they have that covered.
Helps them easily understand databases better than most professionals out there.
(they can easily identify Oracle's & MS SQL server's weaknesses)
They came across classic problems like the " Traveling salesman Problem", "Hamilton circuits" in their math classes.
This ability to discern patterns, dev. Algos & solve probs., IMHO is the #1 skill a good SW developer needs.
(Unfortunately most college courses stress languages, basic concepts and mundane projects-- Can you see code monkeys in the making?).
So if you think you have to go to college to learn this stuff, compared to people like these kids, not only are you ignorant, you're blindly arrogant.
(BTW: most of the kids moved onto other fields like Bioengineering, microbiology, medicine & work as developers for big software firms in their free time with no formal software training! Just ordinary kids; not geniuses).
True, many learn a programming language & think they're set. But you're not that much different if you know when to use a bubble sort have never looked under the hood and pondered whether it could be improved upon.
You have to realise Computer Science is a relatively young field that relies so heavily on other sciences that it's possible for someone to pick up a text at B&N (+ some passion) and become an ace.
As for the reinventing the wheel argument...you contradict yourself b'se as much as stuff like sorting routines have been almost exhausted, you still gain a lot by learning the guts of those routines. And in the process learn both their weaknesses & strengths. Another example; if you code in C and have a cool string lib. (e.g the ones used at Stanford) you still learn a lot by using strings the old way. That's how better algos & routines are created in the 1st place.
Sure you can cram (you call it learn) when to use a bubble sort but if you get into it's guts you could get inspiration for some other algo even in a totally different branch.
All this can be done in less than 4yrs. For less money.
Now again, there are other benefits to a college education but the ones you give and the manner in which you present them depicts
To get back on track, it's easy to learn the right concepts by simply contacting some Comp sci instructor at a reputable college to recommend the right materials and studying them in no short time.
What bothers me is the fact there used to be the 3 rules of software dev.
1- RTFM & think before nagging anybody.
2- Do not be afraid to ask.
3- Teach someone else (or encourage them).
It's the last one, #3 that is dying out.
As for the main parent post, create a portifolio.
Create useful programs you can present.
For ideas just look at the kind of problems you solve on the help desk. Master 1 or 2 languages.
I recommend C/C++ b'se then you can easily pick Java, Python, Small-talk, C#, et hoc genus omne.
Learn concepts like OOP & before you dive into something like Oracle or SQL Server dev. read up on the Practices & principles of databases. Learn the standards before jumping deep into vendor implementations. I stress read. If you don't enjoy doing that try VB.
Re:Talk to your boss or go to school (Score:2, Interesting)
Most reasonable people would not say it's impossible to do this. The problem is that most self-taught people do have gaps in their education, if only because we tend to ignore the things we have no interest in AND think we don't need to know. Right out of college (EE degree) I worked with a really smart guy who was a MechE and had a few years digital design experience. As different as our experience base was, I could easily see the mistakes he was making because he had never had the basic circuit theory I did, and he often made things more complex and bug-prone than necessary. I saw the same things in my code when I began to work on my MSSE (Software Engr). Although I was self-taught in programming (except for one structured programming class in FORTRAN in college) and used to read lots of books on programming and s/w development methods, my lack of knowledge on some basic CS concepts made some of my code, viewed in retrospect, look pretty amateurish.
The issue isn't that a person can't teach themselves all they need to know from books. It's that very, very few of us, without the pressure to excel on exams, etc, have the discipline to learn *everything* in those books.
Re:Talk to your boss or go to school (Score:2)
A few tips (Score:5, Insightful)
1) Commitment: You are not going anywhere if you can't sit down and code a system for months, maybe years. You need to have a stable relationship with your programs. It's like dating a girl, except you can sell it later
And to have commitment, you need:
2) Passion: Love what you do. Few people can sit in front of a computer and look at %$@\"{ > $_ () all day. As strange as programming languages characters look, you need to love them.
Which bring to my next point:
3) Knowledge is power: But, doesn't matter how many programming languages you know. 1, 2, 3 or 50, they all share a lot of commom grounds that you need to know. So XYZW is a functional language, with a little bit of OOP, and ASDF is completely OOP. Doesn't matter, as long as you know the strenghts of each concept, what mostly changes from language to language is the characters you type;
And what characters will you type?
4) Know the market: I love Python. I know Python. But market for it is weak, compared to C++ or Java. But, I make my living with PHP. Instead of complaining that the market for what I like is not the best in the world, realize we live in a society fueled by money, and somehow, you need to make it;
And the last thing I have to say:
5) Above all, stick to your values. Don't go programming proprietary software if you love Free Software, don't code for business segments that you don't like, don't code for companies that abuse their market share, treat their employes bad, or sell horrible products.
Above all, programming is another job. And like any job that it's worth, you have to make a difference. Try to make a positive one!
Re:A few tips (Score:1)
These are key. I spent five and a half years in school to learn how to program and the "theory" behind it, only to learn that I didn't like having to spent four months figuring out why the damn icons wouldn't repaint correctly. Although I had a degree and the supposed know-how to crack code all day, I just didn't have the motivation.
Actually, I'm in a similar position you are in. I wanna do sales, but the sales department won't touch the techies. They have me pigeonholed into programming duties. I have the personality and the shamelessness required, but they don't seem to realize that.
Re:A few tips (Score:1)
I've had relationships like that.
"Abandon all hope" (Score:2, Funny)
Self-employment? (Score:2)
You say you've written small utilities and tools to help out at work. Could these utilities be evolved into fully grown solutions? If you have a nine-to-five job at a help desk, it could be an opportunity for you to start your own company in your own time. All you stand to loose is a bit of your spare time. You could combine your passion for programming with your help desk experience and solve the business problems you have experience with. Turn your desire to scratch your own itches (your small tools and utilities) into a lucrative software business
How to get a job... (Score:2)
A: Go get a degree/certificate/internet-school-honorary-napki
B: Talk to your uncle who works at that place that makes those things. Maybe he knows somebody who needs a programmer. If you're serious about finding a job, this may be your best bet - but you'll need to swallow some pride in order to ask the people you know (and often don't know that well) for help. Your chances may be better than you think - a good word from your old Scout leader may be better than a degree. And once you've got something on your resume, you may have more like cold-applying.
Good luck!
.
Do Freelance Work (Score:1)
Consider building a name for yourself this way...
Smaller companies (Score:1)
My superiors looked to train me rather than hire someone new because it would be cheaper (you work for peanuts, too, right?), and I was already very familiar with the system and code base. The whole operation was on a shoestring budget, and I had luck on my side at that point, but you may wish to pursue a relationship with a smaller company. Of course, consider the high risks involved.
It seems like you've already demonstrated that you're competent and would probably do well with more programming-oriented tasks, so perhaps you should pitch a customer service automation intranet service. Tell your boss you'll work for two weeks on the same pay, developing an automation intranet site.
Work up some figures and show him you can save him money (by giving your co-workers better tools) if he pulls you out of the customer service trenches. From there, he'll either see that he got some great tools for next-to nothing and put you back in the trenches anyway, or he'll try to create a new position for you.
Either way, "Revolutionized customer relations department with innovative Intranet solutions" would probably look good on your résumé.
Going too far on resumes (Score:2)
I agree that a small company may be the way to go, but...
Gotta disagree with that one. I see "revolutionized" and read "prone to exaggeration, can't trust anything he says". I then see "customer relations" and "Intranet" in the same sentence, realise that intranets are for internal use, and immediately question whether it was done for your customers' benefit or your own. Finally, I note that you haven't said anything substantional or verifiable to support your subjective claims.
Sorry, it may be harsh and unfair, but that probably is the first impression such a statement will give a potential recruiter.
Re:Going too far on resumes (Score:1)
However, if someone calls your 800 number, and it takes your support department one minute and thirty seconds to even find the customer's account records, there is room for improvement with your internal tools.
You are totally right, in that the exaggeration is blazingly obvious. However, your second observation is off the mark. Internal tools can benefit customers measurably.
How about: "Helped to improved customer satisfaction by building and updating Intranet tools for the organization's customer service staff."
Anyway, thanks for the criticism. It was valid and refreshingly constructive. I think the next time I work on my resume, I think I'll be better for it because of your feedback.
Re:Going too far on resumes (Score:2)
I wouldn't for an instant suggest that they couldn't. :-) It was simply that my immediate reaction, the way it was phrased, tripped the wrong switch.
I like the rewrite much better, BTW. It's reasoned rather than hyped up, and states a concrete improvement that resulted from the work in question (improved customer satisfaction), both of which are Good Things(TM). I hope it works well for you.
How I did it (Score:4, Interesting)
I was doing tech support and some sysadmin for a project, and had been the sysadmin/graphic designer/jack-of-all-trades at a small company before that.
I taught myself Perl (sounds like you've already gotten this far), and picked an application that needed to be rewritten from scratch. In my case, it was the Campus Map at the university where I work. I went to the people who were in charge of developing it (who didn't really have the time to do it right, and it wasn't a high priority for them at all), and volunteered to do it.
Then I did a really good job. I did the project as if it was my real job -- meeting with the people involved with the site and related stuff on campus to get all the input I needed to have the app meet everyone's needs. I redesigned the whole section of the website. I badgered people to get access to all the content that needed to be included. I documented the API for the Perl CGIs so other people could embed the maps into their own websites.
And the next time a job came up in the department, I was at the top of the list.
-Esme
Difficult, But Possible (Score:2, Interesting)
I finally got to a company that saw my programming desire, and took me up on it. With that in mind, there's a few things that (looking back), are very important.
1. Find a smaller company; you don't really have a chance of making the transition in a larger company, unless they're putting you directly into a programming position.
2. Make SURE you bring up your programming interests in the interview somehow, if the company doesn't have a firm programming department. A lot of companies want to do internal programming, but don't want to risk the venture of hiring a programmer ONLY to program. In my case, they set me programming part of the time... when they realized how useful it is, I was put on full programming duty.
3. Make sure you find a company that maintains an interest in programming. Some companies don't want to have anything to do with it, some want a lot of internal programming done. The key thing is to show them how valuable a programmer can be.
I find that most network solution companies maintain at least a passing interest in keeping a programmer type on staff. The company I work for decided to do their own office management system, and that's where I fit in the picture. Some other useful things to know is that some companies, in order to become partners, REQUIRE office management software in order to be listed as a partner. I had the initial challenge of justifying my work, but now that we have instant project analysis and whatnot, they are more than convinced.
How do I get started? (Score:4, Insightful)
I've been stitching up cuts on my livestock and giving my children cough medicine and asprin. At work they only think of me as a software designer. How can I break into the medical field?
Going to school is out of the question.
Writing one off utilities is not developing software.
You need to understand how languages work (what is a virtual function in c++), how OSs work, what a thread is, what a btree is and why it is so useful, how a garbage collector works, how your filesystem works, how commen compressions schemes work, how long to expect a user to wait with no feed back or some feed back but no progress indication, how to fill a polygon, etc. You don't need to know all of this because you might have to write it, it is already written, but you need to understand these concepts to expand on them and apply them when appropriate. I have used concepts learned in all the previously mentioned ideas in production software.
I suggest that you find a way to learn the stuff in a structured environment. I agree that a degree is only a sheet of paper, but the learning that takes place in those classes is extremely hard to reproduce working on a helpdesk.
Joe
Re:How do I get started? (Score:1)
I've been stitching up cuts on my livestock and giving my children cough medicine and asprin. At work they only think of me as a software designer. How can I break into the medical field?
That's a bit harse. Though the analogy is somewhat valid. Writing software is not like saving lives, and I would say that 90% (or some other arbitrary figure) of developers could not write mission-critical code to save themselves.
Writing one off utilities is not developing software.
You are developing software as soon as you write "Hello World". The fact that this guy is writing utilities, even if they are once off, means he's solving problem using software. This is what developing software is about. Just because it does not meet your standards, doesn't meen it's not development.
You need to understand how languages work (what is a virtual function in c++), how OSs work, what a thread is, what a btree is and why it is so useful, how a garbage collector works, how your filesystem works, how commen compressions schemes work, how long to expect a user to wait with no feed back or some feed back but no progress indication, how to fill a polygon, etc. You don't need to know all of this because you might have to write it, it is already written, but you need to understand these concepts to expand on them and apply them when appropriate. I have used concepts learned in all the previously mentioned ideas in production software.
You can get this from a book.
Re:How do I get started? (Score:2, Insightful)
EXACTLY! Why are we continuing the myth that you can become a super programmer without extensive training? You can't. You need experience with the patterns of software development (notice the lower case 'p'atterns).
Just because it does not meet your standards, doesn't meen it's not development.
Right. Handing out asprin isn't medicine. Your future coworker here wants to transfer to a programming department. That isn't a one off group. How many of your coworkers should have gone to school, but didn't. We as an industry are producing crap, and it's because of attitudes like this skipping school thing. You have to learn the basics before you can produce complex software.
You can get this from a book.
Did you get it from a book? I didn't say you couldn't get it from a book, but I don't know anyone who learns from a book without testing. projects, and peer review like they can from a class.
Joe
Re:How do I get started? (Score:2)
Class is bullshit.. and most people gone through it will vouch to it.
Bad classes are bullshit, but I'm not recommending them
Either way, I think its attitudes like the one you presented here that keep the industry deprived, not lack of school.
Would you go to a doctor that is learning on the job? Do you get your hair cut at a beauty school? Does your lawyer have a degree? Did your tax preparer learn on the job?
Name any other industry where you can learn it in a book.
I would suggest that you haven't learned it. How many compilers have you written? What designs did you use? Why? You need to know these things to be a good developer. Again, not because you need to implement a compiler, but you need to understand your tools.
try grabbing a large open source package
Open source code works great, but evolutionary development results in poorly designed code. I suggest understanding class libraries from the likes of Sun and MS and learning as many languages and environments as possible, you know, kind of like you would learn in class.
Just an opinion of a contract developer/designer/mentor with 8 years professional experience,
Joe
Re:How do I get started? (Score:1)
Wish I wasn't out of moderator points!!! To anyone interested in the likely future of software, there is an excellent paper written by Nancy Leveson (a safety-critical software guru) on the parallels between what happened in the early years of high-pressure steam engines and what will likely happen with software. (google: "High-Pressure Steam Engines and Computer Software"). I realize that most of
And to the OP: why is night school out of the question? I have been going to night school for the past 3 years for my Master's. It's a royal pain finding the time, doing all the projects and research, but worth it. I'm learning a tremendous amount and am a much better developer for it. My gf is a single mom who is getting her undergrad degree at night school. It's even harder for her, but she finds a way. If it really is that difficult for you to get away, have you considered distance learning?
Re:How do I get started? (Score:1)
I agree, there is a significant difference between simple development of web pages, scripts, etc., and the design and implementation of larger projects.
In my experience, coders who teach themselves are generally quite able to develop something with the proper guidance: Write a class X, it must have public methods Y and Z, etc. But it generally takes formal education (more than Teach Yourself XYZ in 21 days or a week long training class) to gain the understanding needed to do real design work.
Call it snobbish, but I think there are plenty of analogous careers where we all accept the need of formal training. Neither experience nor education alone is enough. There may be the occasional genius who is indeed self-taught, but that's the exception instead of the rule.
evolutionary development results in poorly designed code
I disagree that this is always true. I've seen plenty of well-designed open source software. But I think if you look at those who are guiding the design, they will have the education and experience needed to design large systems.
Re:How do I get started? (Score:1)
All of that stuff could be done on your own, though. You just have to be motivated enough.
Job Duties (Score:3, Insightful)
There is a definiate art to writing a resume when your experience is in one job tilte but you are seeking a job in another. As long as you do not make up facts, spin the hell out of what you did. Market yourself: there is no rule that says the description you give of your job duties has to be proportional to the amount of time you spent doing them.
List bullet items for each of the programming tools you actually used, no matter how "small" your use of it was, and give a short technical and functional description of what you did.
For example, if you wrote code to use PHP/MYSQL to track something at work, then devote several lines to this, even if was done "in your spare time" and wasn't your primary job duty. Your attitude to a prospective employer has to be "I've done X before, I can do it again for you". If you find yourself thinking along the lines of "Well I was only really asked to do Y, and Z and only did X on my own when Y and Z were slow" then you need to slap yourself. Frankly, if you weren't asked to do X, all the better: that's called proactively identifying business needs and solving them. Employers do not want people who sit there waiting to be told what to do.
Find employment at a local higher-ed (Score:1)
But most relevant for this topic -- unlike corporations, educational institutions are more likely to give someone an opportunity to grow.
So, check out the HR websites, see if there is something you are interested in, and get that resume in! Hope that helps!
Re:Find employment at a local higher-ed (Score:1)
I'm in the same postion, and found a solution (Score:1)
I am now working for a large national corporation as an "IT Support Analyst" which is a rather non-descriptive job title. I do some helpdesk duties, but while I'm here I'm getting them to pay for and send me to lots of training to lead me in the programming direction... they've sent me to some XML classes,
If you can find the right company that is willing to let you flex the job description a little, you can learn on the job. Sure, helpdesk duties aren't the greatest. But right now I'm developing software to run our helpdesk, and some utility programs that go along with it.
Other side of the desk (Score:2)
Be prepared for a lower salary to start with, though, than a programmer with a background or education in the field. After all, your employer will be taking a risk on you.
Re:Other side of the desk (Score:1)
Re:Other side of the desk (Score:2)
cat | sort
He was hired.
I was in the same position... (Score:2, Interesting)
When I was going through high school, I got a job a tech shop repairing and troubleshooting PCs (making $5.50/hr) in a farm town of ~1000 people. I got A+ certified (which is basically worthless to me now) because the other A+ certified guys made $30K / year which I though was a LOT of money. During those high school days I took a few programming classes (Qbasic, Pascal, then C/C++ in that order). I did that tech shop gig for 6 months and left to work at the local ISP for tech support (making $7/hr). There I was introduced to PHP. I worked the graveyard shift there for 6 months and drove 2 hours to work and 2 hours back and gasoline was eating up the money quick. The drive was a huge sacrafice on my part. Every night when I got to work, I spent the 8 hours there reading and learning everything I could relating to programming just becuase it was interesting. I picked up PHP quickly because it's so similar to C/C++. I rewrote the tech support website in PHP with a MySQL backend on Linux while I was answering the phones. I ftp'd everything and had no clue I was working on linux. I didn't know what linux was back then anyway. I left there after 6 months to go to my first real programming position. This is the way I got in:
1. I rewrote the tech support site in PHP, therefore I had sample code and proof I understand basic programming concepts. Code is basically a must have for any development postition (in my experience, YMMV).
2. The company I went to was small 50 people and they were growing. They were interested in me because I was young (17 y/o) and extremely cheap according to the other programmers. I started off at $27,000 / year with benefits while the others were $50k to $75K. This was good for them because they could POSSIblY get a good developer for pennies on the dollar. It's a low risk / high gain opportunity for the company.
3. I was local and didn't require any relocation (I still made the 4 hour a day drive since I couldn't afford to move).
4. I could start immediately without giving 2 weeks.
5. I had a personality as did the company.
I left from there after 6 months to go to my next job making $50,000 year because I had _real_world_ experience. All that happened less than 5 years ago. I have yet to go to college or even take the SATs. The rest is history.
Currently, I am making much more. I have been living in another state ever since I started making $50K / year at the age of 18. You are still relativly young. Almost all of the developers I have had the pleasure of meeting are between 23 and 35.
This is my story. YMMV. A few things you might want to know. The raises you get are bullshit. The only way (IMHO) to get an increase in a pay is to switch jobs. Hope this helps.
Small freelance projects (Score:3, Insightful)
You might have to do it for little money, or for free, or maybe negotiate something with the person -- for instance, if you are doing an ecommerce site, you might do it for a commision on what gets sold on the site. That way the person has nothing to lose. Or you might want to set it up for them, and then charge them for maintenance (if you feel more confident about your ability than they do -- again, they'll only have to pay for it if they like it). You're looking for experience, so you should expect to make relatively little for your time investment.
If it goes really well, you might find yourself being self-employed, doing programming for people who can't hire someone full time for their programming needs (this happens more often for web development than other programming). If not, you should have some good portfolio work to present someplace for a new job. Your new job may not be a programming job, but hopefully it can be a job that can become a programming job (where your current one can't, it seems). System administration jobs tend that direction, for instance.
Can't go to school? (Score:2, Insightful)
I'm early twenties, a programmer (more than a full time job), wife and kids. I go to school, and commute two hours a day to do it. I wake up at 5 to get to school by 7:30 so that I can attend class and get to work by nine. I use my lunch break to go back to school for class again. Do homework after the kids settle down (if they do, usually passed 11). It's a pain in the ass, and I'm barely surviving, but it is possible. I don't know if you have some particularly difficult situation (e.g. illness in the family), but my guess is that you could do it if you really wanted to.
Go figure (Score:3, Insightful)
I started out in this industry doing PC Desktop Support.
Then I was doing HTML.
Then I was doing Cold Fusion.
Then I was doing Perl.
Then I was doing Objective-C in WebObjects.
Then I was doing Perl and Java and XML. (Jakarta rocks!)
Along the way I picked up some Bash skills, some Emacs Lisp, some Python, some TK, some GTK and SQL including experience with Oracle, Informix, PostgreSQL and mySQL. Some of it was just for fun; some of it was for work.
I have learned about Linux and Solaris and a tad about AIX.
Now I am a web application programmer and team lead at Apple.
Repeat: I am 30 years old and I have a degree in English.
Do not think you cannot do what you want to do. Do not let your age or your background keep you from your dreams.
Enjoy it now ... (Score:2)
This is how I did it (Score:2, Insightful)
I was in a little better position than you because I have an engineering degree but with really shitty marks. I got my first job doing technical support in a bank for servers, when all my other friends got jobs at IBM, Motorola, etc. I basically put computers together. But when I got home, I worked non-stop on the computer, learning networking, Windows NT, C++ programming, etc. I spent 8 hours at work and 8 hours at home studying. Every single fucking day. This is what you need to do as well.
Just by luck the bank moved from OS/2 to NT, so I went up to the manager, told him I knew Windows NT and if I could work on that project. Then I did the same thing with programming, and after a year of working at work and at home, I fudged my resume saying that I was a C++ programmer, and went for a programming interview. I didn't have any very much significant business experience, but because of all the programming projects I worked on at home, I was able to talk the talk and walk the walk.
I got hired, and the rest is history. 9 years later, I'm working in Silicon Valley making more than 6 times the salary that I did when I first started ($30000 Canadian == $20000 US, now I'm making >$120000).
The trick is that every day when I come home, I'm always working. I'm always learning new shit, the latest technologies, and this can never stop while your in IT. If you want to get into programming, you're going to have to tell your family to "FUCK OFF! I'm working my ass off so that we can all have a better life!" and put your nose to the grindstone, and fucking study and work and program on your own.
THERE IS NO OTHER WAY TO DO IT.
Re:This is how I did it (Score:1)
But when I got home, I worked non-stop on the computer, learning networking, Windows NT, C++ programming, etc. I spent 8 hours at work and 8 hours at home studying.
tell your family to "FUCK OFF! I'm working my ass off so that we can all have a better life!"
It may just be me, but I'm not sure that your description of your home life constitutes "a better life", no matter how you slice it.
Here's how (Score:5, Insightful)
Try to find a company using technologies of long-term interest to you.
Get to know some of the programmers. Have lunch with them.
Sharpen your skills with the technologies they use. If they do Java servlets, then you start building Java servlets. If they do VC++ Windows client apps, you do the same. Do it at home until you're pretty good, then start doing it to help out at your job (in your own department).
Then, when there is a dev crunch for the programmers, volunteer to help. Go to the engineering mgr, tell him that you've been doing this kind of work for the company in your dept. and ask if he'd like to borrow you for some side projects to help ease the resource crunch a bit.
He'll probably be interested, and he'll become your advocate. The guys you have lunch with might vouch for you. If you do a good job (don't prove you're better than they are, prove that their lives are easier with you on the team), you'll soon be pulled in full time.
After working there a while, you can go work somewhere else, using your demonstrated pro experience as your resume.
Analysis, Prod Support and Testing (Score:1)
Over time, I developed these peoples skills to the point where they were capable maintenance programmers. I don't think I'd trust them to design and build a system from scratch, but they filled a valuable niche that the hard-core tech-heads just weren't interested in doing at the time.
So it does happen, but now is probably not the best time to be looking to do this, as the once proud tech-heads are now taking whatever they can get.
It's unfortunate your current companys dev team is inter-state. All I can suggest is find another help-desk role in a company with a local dev team, if that's possible in this climate. Then work your arse off for 2 years to learn the company, it's business and it's systems inside out, better than the programmers do. Then get cosy with the team leaders and managers responsable for running the Analysis, Support and Test teams, bend over backwards to help them, and eventually the door should open. Avoid the HR types, they rarely understand IT or the business, all they know how to do is read a CV and yours will quickly be weeded out.
One final piece of advice: no matter how hard it may be to organise your life around it, any sort of qualification will help. It did for me, after 5 years part-time uni, the day I got my degree was the day my company moved me from a boring clerical job to an analyst job in the dev team I ended up running a few years later.
John.
Re:Analysis, Prod Support and Testing (Score:1)
Re:Ask yourself one question. (Score:1)
It is 3:13am and I'm working for a client that I'll probably lose in a week. I'll push and try harder, but I know I'm not behind a phone explaining to a professor how to scroll down. You should take a vacation.. replace your employers if they're giving you a hard time and enjoy working. Take my work the market is NOT bad right now and its improving.
small companies (Score:1)
Once you get the experience, build a portfolio notebook that has pictures and references of your work. Include photos of your company's products, glossy advertising brochures, photos of your customer sites (even if it's just a photo of a mainframe). You will then be able to explain to future employers exactly what your contributions were.
Small Company (Score:2)
Find a small company that wants to hire a programmer, doesn't want to spend the cash for a Univ. grad and is willing to take the risk. You might not get paid much better than the help desk, but it will get you in the door. That counts for more than a diploma in many cases.
And as much as you don't think nightschool is an option, if you really want to be a programmer you might have to go that route. The good thing is, most of the nightschool courses related to programming shouldn't take up too much of your time. Most people spend the time trying to figure out why printf keeps crashing their program. You won't have that problem.
I was in a "worse" position (Score:1)
I was in a position similar to yours. I have a family, responsibility, and a desire for a software development position.
However, I didn't even have the job. I was unemployed. All I had was my highschool diploma.
I decided to bite the bullet, and apply for University. My wife stayed at home with my daughter, and I worked part-time at a local coffee store to pay most of my bills. Student aid also helped.
I took an internship between 3rd and 4th year at a respectable company, and that got me "real world" experience. I also dropped my coffee job in favour of some independent contracting (web / documentation / programming.)
I finished my last exam this week, and I have a job waiting for me in an amazing and prestigious company (well, hrrrm... this is Slashdot. Perhaps that sentiment wouldn't hold here.)
The one thing that separates my story from yours is that I went right from high school to university. My point is, though, that the only difference between you and I is that you've worked for a few years. It doesn't matter -- I've seen tons of "mature students" in my lectures. In fact, you'll have the advantage of a practical underpinning that most nerds have no clue of. In the big scheme of things, you'll take a 4 year "pause" from your career. That's nothing. It seems daunting to go back to school after all your practical experience, but your future is in your hands.
Try working for government (Score:2, Interesting)
I don't know about Conn., but in my state, there is a dearth of skilled computer people working for State Government. I think this could have something to do with lower pay in government than in the private sector.
I was a Mechanical Engineer with a 4-year degree, but I wanted to move into programming. A state agency interviewed me, saw I had passion for programming, and took a chance on me. It has worked out well for them and for me.
Certifications (Score:1)
Programmer, Developer, Engineer, or a hack? (Score:3, Insightful)
If you want to be a white-collar professional type, expect to be like any other professional, and get the best education you can. Which is typically at least a four year bachelors degree.
You can get an entire BSc Computer Science via correspondance, online or via postal mail. Look at any university in US, you very well may qualify for financial aid, or low-interest student loans.
Then follow this method:
1) Get an education, (knowledge that will not become out of date)
a) understand computers (a la Structure and Interpretation of Computer Programs [mit.edu])
b) mathematics
c) history of computing
d) programming in the small
e) programming in the large
f) software engineering
g) networking
h) professional presentations and writing skills
i) algorithms and data structures
j) database systems (RDBMS, OO databases)
etc.
2) Training (skills of tools and techniques, that will have to be maintained)
a) programming language (e.g. C, Pascal, Java, C++, whatever)
b) database (Oracle, PostgreSQL, MySQL)
c) operating systems (VMS, Unix, Linux, W2K, Plan 9)
d) project mangement
Note: Training does not need to be formal, and tends to be more expensive. I did most of my either at university, or on the job.
3) Experience
I think you can figure this one out. I should point out that testing, QA is often an easier to get into than the programming department. Also debugging skills, and seeing what can go wrong (Risks Digest [ncl.ac.uk]) will hopefully make you a safer programmer.
If it can help... (Score:1)
Just be convinced that you can do it, convince other that you can, and one day it will work. It could take some time, but just keep on trying.
Stay focused on your goal (Score:1)
Times are tough (Score:1)