|
OK, some here is some general advice.
1. Don't expect to be in any position for too long, whether that be freelance or full-time. Technology and projects move on and so must you.
2. Make sure you provide for your own pension, don't rely on an employer's scheme. See point 1 above.
3. If you can, try to get income protection insurance.
4. Don't rely on employers training you. You will need to keep your skills current; always manage this for yourself, but take employer's help if it is there.
5. Expect to have to travel, commute and have unsociable hours.
6. Where ever you go, make sure you 'acquire' a copy of the code you work on and produce. Maintain it like a reference library, but be sure to respect NDA and IP.
7. Learn to copy type and buff up your English (or whatever language you use day to day) and writing skills. You may or may not be writing lots of documentation. One way or another you will be writing lots of emails or updating change request/bug fixing forms.
8. Do not neglect technical writing skills or testing skills.
9. Don't forget that the code you never seem to have time to write at work is an opportunity for a side project at home.
10. Consider business qualifications and presentation skills. You may be surprised just how much of business processes you really have to understand or get involved in. You will at some point have to be able to speak in front of an audience.
|
|
|
|
|
I have a friend that made the transition.
His first customer was almost pro-bono, but not quite. (Helping a church with their membership database). It got him the experience and some references without having to quit his day job. He eventually launched into some full time work (mostly "programming" giant Excel spreadsheets). Now he is doing free lance from his house for remote customers.
He had a technical computer degree, but was a franchise restaurant manager when he decided to launch the career he wanted.
The main thing with free lancing is to solve the customer's problem.
|
|
|
|
|
As others point out, working freelance is a long way from being a beginner. Figure on 5-10 years in a real job to give you the experience first. Try to freelance without the experience, you'll go broke after working 100 hour weeks till you're near collapse.
Programming pays well although the locations may be limited. Some of the specialized jobs do quite well (I do 'bare iron' embedded programming, heavy on the electronics, circuit board design and how best to fit hardware with software). Web site programming is the highest demand, from what I see on job sites, which means more competition for the position. Embedded programmers are a rarity since you also need a lot of EE type skills, and I'm sure the same applies for advanced graphics/animation, avionics, medical and some other niche jobs.
Books teach you some of the technical basics but virtualy nothing about commercial software development. A lot of non-technical skills like economics, project management and communications, go into the mix when you have to pitch a project to management.
As for outsourcing, those website development projects are high profile targets for the Wipro outsourcing companies out of India, so yes, it's something you need to watch out for. Other types of programming jobs have little chance of being outsourced. Anything that needs local cultural fluency, or highly specialized knowledge, generally isn't economical to outsource. The particular (foreign) company I work for happens to outsource... to the US, since the foreign pool of senior level embedded guys is extremely small and just as expensive.
Website stuff is your best chance for an entry level position. The IT experience won't impress anyone doing development ("those who can, program; those who can't, plug cables into routers"). Last place I worked for the first check mark was for a BS degree in a hard science, or a whole lot of solid programming experience. "I read a lot of books" won't make it past the HR filter. Might be unfair but there are so many applications HR has to come up with a base line, which for software development is a degree.
|
|
|
|
|
First, let's explore a couple of options for the term freelance:
You could be someone who works from home (college dorm, etc) and creates stuff of interest, hoping someone will buy it. Mark Zuckerberg (sp) comes to mind. He did OK. Are you a Mark Zuckerberg? Do you have that level of focus and an acceptance that there will be hard times before the good times, if there are good times? This is perhaps the riskiest version of freelancing. Linus Torvalds is another example of this sort of thing. In his case, he did something for himself (Linux) that gradually gained broad acceptance.
You could work from home on a platform that you learn. For instance, there are many IOS and Android developers. Some work from home, some work for companies. In this case, start at home, but keep your day job - Unless you don't care about stuff like eating and having a roof over your head.
You could do contract work. In this case, you would want to put your name out there on the employment boards, then field contacts from the agencies that do contract work. However, to get into this field, you have to put down the "for Dummies" books, and get a real background in some valuable area of development (Hot areas are in Artificial Intelligence and Security). You don't absolutely have to have a degree, but it does open doors. But you do have to have demonstrable skills. Will your current employer help pay for schooling? Do you have access to GI Bill type benefits (That's a USA thing, but other countries have their own support systems)?
Basically, a contract agency is like an employer, in that they will interview you, and expect you to have skills. If you are only entry level and can't impress an agency, then you will have to seek an entry level position with a company doing development work. Once you have some growth and understanding, if you still want to contract, you will at least be able to get past the interview.
My Path: I spent the first part of my professional life as a USAF officer and pilot. After I got out, I had to figure out what I wanted to do. I chose to go back to school and get a degree in computer science. Before I finished, I got a job as a C programmer with a defense company. After a time, conditions were ripe for change, so I worked a couple of years as a contractor. Then I went back to defense work. 2001 was hard times, and I worked most of the year (on and off) as a contractor, but finally got a job with a defense company. I've been with them now for about 15 years. Most of my work has been in C and C++, but I've also had experience with Java, Ruby, C#, Visual Basic, and others. In this industry, once you stop learning, you gradually become unemployable, so remember that.
Eric
|
|
|
|
|
Are you prepared to be a "student" for the rest of your life / programming career?
If not, pick a trade.
|
|
|
|
|
Hmmm... Let me put my mentoring hat on.
Are you bored because you are not stepping up and taking more responsibility? Or because you are overqualified or under worked? There could be a LOT of reasons to be bored.
Being Bored is usually a good sign for programmers. Most of the good ones get bored with repetitive tasks (like I imagine network administration to be).
Since you are NEW to what you are doing, I would advise caution first. If you are bored at your job, and it pays well. GOOD for you. It is a nice problem to have, take up a hobby and have a great life.
If the pay is lacking, then one approach is to get an education on the side, with regards to programming. Go learn stuff. See if you like doing it for 2-4hrs at the end of your work day.
Also, this might allow you to pickup some work on the side, and augment your salary. While learning important skills.
Risk and Reward should always be considered together. I love consulting nowadays. In the past, I hated the weeks that I had of down-time with no clients calling, now I network during those times, and forcibly during my busy times (1 meet a week, in general).
Unfortunately, being new means having no REAL experience. You have to start at the bottom a bit.
Finally, not knowing if you are going to like programming is another challenge.
Here is a programming test for you. If you enjoy solving it in 2 or more ways, then you might be a programmer:
Take a single text file of words (dict.txt), as input.
The output will be (to the screen), ALL of the words on ONE LINE that cane be made by with the SAME letters (no more, or less). Goal is to use the ENTIRE English dictionary to test for efficiency.
Example input:
bat
bit
cat
hims
shim
tab
Example output:
bat tab
bit
cat
hims shim
Words should not be output twice. Your goal should be efficiency. For the entire English(language) dictionary it should NOT take hours. DO NOT Google the answer. Spend the time solving the problem. Then write the code and test it (small dictionary first, then a huge one).
If you ENJOYED solving the problem. And Liked testing the implementation, and even had to figure out how to do the timing/debugging if it was slow. Then you might just have what it takes.
Because programming is FIRST and FOREMOST about Analyzing and Solving problems!
HTH
|
|
|
|
|
Being a solo freelance web developer and making a living is extremely difficult. I’ve been down that road. You need to be current on everything from coding HTML, JavaScript, ajax, CSS stylesheets, input validation and security, a back-end language like C#, SQL and so on, know everything about hosting services, domain registrations and so on, be a page designer, expertise on photo and graphic tools, know how everything works on every browser and how they respond on everything from mobile devices to desktop, interacting with social media, and customers may want to be able to update the website themselves and then a secure admin back-end becomes a whole separate project itself, the technical requirements are endless if you expect to market yourself and get good paying work. You don’t have time to learn or spend time with trial and error you need to know immediately that you can fill their requirements. And that’s the fun part, then you need to find customers, market yourself and be able to spend lots of time writing and developing proposals and mock-ups that may just end-up in your archives. You need to negotiate their expected deliverables so they can see your progress (and a way for them to see your progress), and you need to negotiate your payment(s). Note: Smaller web customers are now using canned do-it yourself drag-and-drop web products and even if you get work with a smaller customer they won’t pay a lot and once the site is done you’re back looking for more work. Freelance web development is tough.
|
|
|
|
|
Never fear. I'm been doing programming/coding for living for more than 26+ years, and demand are kept growing. Developers are in short supply at the moment and by 2020 it is estimate to be 400,000 developers shortage. How much you make depends on how ambitious you are staying up-to-date on emerging technologies. Constant learning and probably not that much different from being IT admin. However, developers generally are paid a bit more than IT admin once you are a bit seasoned. The environment is changing and telecommute, contract and freelance works are becoming more available globally. I working day job, but considering going contract or at least telecommute going forward.
Cheer.
|
|
|
|
|
I have made all my income from software development since 1982. The last 10 years has been as a Freelancer.
A couple points not made yet:
- Programming is an inherently frustrating job. If you can't deal with constant frustration, stay away.
- My advice is always: If you are over 30, you are too old to start out in programming. Not because 30+ people can't learn, but because you need to be interested in programming to make it work for you. This planet is awash with computers, compilers and IDE's. If you have been swimming in this sea of opportunity for 3 decades and haven't yet learn't to program, well you just aren't interested. This advice would go double for a systems/network dude.
- No one here, AFAIK, has given you an honest, direct, answer to your question "Can I make a decent living". The short answer is "no". The long answer is: "Compared with what you can earn now as a systems/network dude - no. At least not for a number of years.".
|
|
|
|
|
|
|
Looks awesome
|
|
|
|
|
So I was contacted by a recruiter agency out of Buffalo regarding a possible position for a major health care company right next to the Albany airport (no names mentioned, but I'm sure you can figure it out.) I thought, what the heck, it's a commute, but maybe it would be a nice change to actually be working with professionals up close and personal, as it were.
After going through the screening hoops with the recruiter, I get set up for an on site interview in Albany. I think, cool, I'll be able to meet people in person, see what they're doing, ask some questions about their challenges, vision, tools, etc. The usual "my interviewing the interviewer" questions.
Nope. I drive all the way up to Albany to discover it's a teleconference interview. WTF? I could have done this in my pajamas, cat on lap, from my home!
Then, the HR person was cold, escorted me into the conference room, escorted me out when it was done. There was no tour of the facility, no other managers / team leads met me, no one else spent any time with me, it was very unprofessional.
The team lead who interviewed me asked a bunch of junior level programming questions. I sort of threw him for a bit when I replied "please don't ask me questions that I can google the answer for." hahaha.
And the clincher was that the rest of the team is Buffalo, so they want me to drive 45 miles every day so I can telecommute from their location. Riiiight. The whole point of working on site for me is to have in-person peer contact!
And then the most amusing thing is, the recruiter gave me the email address of the person who interviewed me so that I could send them a thank you note. No problem, standard practice. I get back a "Delivery to the following recipient failed permanently." I asked the recruiter for a correct email address. No response, after "we" decided I didn't want the job (correct, but zero room for negotiation.)
Morons.
Marc
|
|
|
|
|
Marc Clifton wrote: the recruiter gave me the email address of the person who interviewed me so that I could send them a thank you note For what? For simply doing his work?
If you went to the loo there, thank the cleaning-team too.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
It's merely to thank them for their time, not a comment on the validity or usefulness of the interview.
".45 ACP - because shooting twice is just silly" - JSOP, 2010
- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
He gets paid for his time. The person going is also putting in time, but unpaid.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Eddy Vluggen wrote: For what? For simply doing his work?
It's just courteous.
Besides, it's an opportunity to address some questions that didn't come up in the interview, etc.
Marc
|
|
|
|
|
Marc Clifton wrote: It's just courteous. It's hypocrit. An employer is someone who wants to trade money for my time. One does not owe the other anything. Instead of thanking the employer for his time, I expect to be thanked to take the effort to look at yet another "great opportunity".
Courteous is when they do not thank me but compensate my time, as one has to invest to hear the "opportunity".
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Eddy Vluggen wrote: An employer is someone who wants to trade money for my time.
Well yes, when you put it like that. But there's still a human being doing the interview.
Eddy Vluggen wrote: I expect to be thanked to take the effort to look at yet another "great opportunity".
I was.
Marc
|
|
|
|
|
Marc Clifton wrote: But there's still a human being doing the interview. So, the correct phrase is "thank you for being (mostly) homo sapiens sapiens"?
It is nonsense to thank the salesman for taking time for the sale, as much as it is nonsense for the salesman to thank the customer. It is a false courtesy, aka sucking up.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
They probably didn't even want you, but company policy dictates they should at least interview x people a month/year.
In this case it's their loss, really.
|
|
|
|
|
Marc's problem is that he's not a gay black female handicapped veteran on welfare. And he has cats.
".45 ACP - because shooting twice is just silly" - JSOP, 2010
- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
John Simmons / outlaw programmer wrote: And he has cats.
And even worse, no guns!
Marc
|
|
|
|
|
Believe it or not, I don't really like guns, but I like being a potential victim even less.
".45 ACP - because shooting twice is just silly" - JSOP, 2010
- You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
- When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013
|
|
|
|
|
John Simmons / outlaw programmer wrote: Marc's problem is that he's not a gay black female handicapped veteran on welfare.
How do you know that???
If it's not broken, fix it until it is.
Everything makes sense in someone's mind.
Ya can't fix stupid.
|
|
|
|
|