|
I didn't know you were gonna ask this question but an hour ago I posted a status on Facebook,
If you want to be a programmer, just because the pay rates are high, my recommendation for you: Stay away! #programming #tip #careeradvice Frankly speaking, there are rare chances for you to get a "good" job in computer science, or IT department. My own views are that you get a good job if you have a Microsoft (or any other similar giant's) certification. Most of the employees look for that. So, since you are beginners, let me walk you through the Eden of programming!
Quote: some resources on Mac and Windows programming. Learn either one of them. Either do Mac programming or do Windows programming. Do not entangle yourself in both of them at the moment, one of them uses Swift or Objective-C language and other uses quite multiple languages, .NET framework and some web technologies.
Quote: Can I make a decent living being a programmer/developer/coder? Yes, but your table will always be a mess. Your hardware or laptop components, sensors, keyboard etc. will always be left over and your wife (if there is) will always be mad at you! I don't have a wife.
Quote: Is being a freelance programmer a good idea or even feasible? Do not do this. Freelancers don't get the respect that they deserve. Most of the times, they are asked to do a project of $1000 worth in under $100 with 5-10 modifications later. Even if they say something, they get a bad voting by the recruiter. That is one of the reasons I left the freelancing world! Build your own applications, sell them, monetize them using advertisements or sell in-app purchases such as premium options and features. You will get a good earning from there. Otherwise, get an on-premises job.
Quote: Will I have job security? In most of the freelancing projects, there is very less security of the payments. On the premises and in the offices, you get full payments for your monthly job. Your job is safe and you work in a group, where you get to eat and talk in a group. For a programmer, that is the only social life he gets.
The sh*t I complain about
It's like there ain't a cloud in the sky and it's raining out - Eminem
~! Firewall !~
|
|
|
|
|
Yes, you can make a good living as a programmer/developer/coder software engineer. But in order to do that, you need to know how to build correctly functioning, performant, secure, extensible, scaleable and maintainable software. And that comes from writing code. Lots and lots of code. And making mistakes. And learning from other developers.
It's a great ride - keep at it, and I think you'll enjoy it!
/ravi
|
|
|
|
|
The danger here is you're asking a bunch of hardcore tech-heads for their warped opinions! Personally, I think that if you couldn't program in assembly language before blowing the candles out on your 10th birthday cake then you must wholly inadequate as a programmer.
The reality though is that most people with IT jobs aren't that into it and get by just fine. If someone is going to pay you, it won't be for the elegance of your code. It'll generally be for producing something which is just good enough but does what they want. In finance (my domain), you can earn an absolute fortune writing little twiddly Excel VBA macros with a bit of business knowledge because finance loves Excel. Hacky or not, no-one cares.
I don't do that though, because I hate Excel. Freelancing is very doable, as you are super-expendable as opposed to a permanent employee who you have to make redundant + make all sorts of other sacrifices and who might scream cries of 'unfair dismissal' when you try and boot them out.
Outsourcing happens a lot, but they usually reverse it after a few years having realized what a bloody awful idea it was in the first place.
As someone else said, in this mean world there is little job security or loyalty any more, but no more so in IT than any other industry. I say go for it, but for the love of God, don't do Java...
Regards,
Rob Philpott.
|
|
|
|
|
Rob Philpott wrote: The danger here is you're asking a bunch of hardcore tech-heads for their warped opinions! Personally, I think that if you couldn't program in assembly language before blowing the candles out on your 10th birthday cake then you must wholly inadequate as a programmer
You've pretty much proven your first point with what immediately followed it.
What curriculum even teaches the kids assembly nowadays?
|
|
|
|
|
Yes you can, but be prepared to start at the bottom, and suck up as much knowledge from those around you. In my experience, don't other with certifications, experience is way more valuable.
If you are good/lucky you can work your way up the chain pretty quickly. To do this, be prepared to move fairly often [maybe every 2 years] to keep yourself motivated and to learn different skills/industries. If you're prepared to move often, job security is probably less relevant.
|
|
|
|
|
How are your "marketing" abilities?
You can be the "greatest" programmer (whatever) ... but if you can't "sell" yourself (or have someone do it for you), you won't get anywhere.
So, besides (some) skill in programming, you need: confidence; good spelling / grammar; able to craft a custom cover letter; bid, estimate and schedule intelligently; etc.
You "job security" (LOL) is dependent on how well you master the above (and then some).
|
|
|
|
|
CableX1 wrote: Can I make a decent living being a programmer/developer/coder? Depends heavily on your locale.
CableX1 wrote: Will I have job security? Once you become good, you can stop caring about that. There's enough jobs out there that need to be done.
CableX1 wrote: either at a 9-5 kind of job You mean an employee; most companies expect you to 'not have a 9-5 mentality'. In which case your first question should be whether that also counts for the pay.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Thanks for all the responses, everyone...they are much appreciated!
Programming has been in an out of my life in various ways. Took a BASIC class in high school a LONG time ago, tried making websites a little back when the internet was relatively brand new and that's about it.
I like the creative aspect of it the most. You are making something in the end...I find that a bit more appealing than managing servers, switches and applying Windows Updates, hoping they don't blow anything up.
Freelancing would be something far in the future, if I would even want to go in that direction. I've realized that all along, but naturally would like to hear current experiences.
The road sounds exactly as I imagined....learn, learn, learn, code, code, code...get the experience and that will lead the way from there.
I have started out with the Dummies books. I know that eyes will roll and I get it, but I found it was the best way to get my feet wet. I have other books that are way more technical, so really, the Dummies books are just the shallow end of the pool for me...the ankle deep pool, that is.
I'm thinking of going more the Windows route, but am considering the mobile route too. The Mac one would be more for fun.
Some of the interesting things I've heard from various people:
"You can find a lot of work doing javascript."
"My friend took a mobile app series of classes and is now doing that, making tons of money!"
I take everything I hear with a grain of salt and as a side note, I'm not about making a ton of money. Would be nice, but I have a family to support, so that's where my head is at. I'm not going into this with $$$ in my eyes and insane expectations.
Please, continue with any comments or experiences. The more information, the better.
|
|
|
|
|
IMHO, the key to success is experience. The field is way too large for most devs to have both wide and deep knowledge. (I know I don't.)
I started out by writing desktop applications (I enjoy working with rich UIs) and have built Windows apps for about 20 years, and server-side code (also Windows) for about a decade, and now work on server-side code and mobile (specifically Android) UIs. My language of choice is C# (Xamarin allows me to build Android apps in C#). Choosing Windows (vs. the Mac) was a decision I made in the early 90s (I found the Petzold book easier to read than the Mac doc set) and have since been comfortably nestled in that technology.
My knowledge of web front ends and things NodeJS or Pythonesque is less than zero, but that's OK. I love what I do and am happy there's a market for it. I've never selected a technology because it pays well. Instead, I look for opportunities that allow me to grow my knowledge.
I hope my aimless writing provides food for thought.
/ravi
|
|
|
|
|
Can one make a good living (as a freelancer)? Yes, certainly. Can you? Only you can know that. There are - at least here in the UK - at least 2 types of freelancer. What we call "bum-on-seat" - you get hired by an agency, turn up at the client (along with lots of other freelancers usually), and do what the client tells you between 9am - 5pm. Bill monthly and make decent money. But you'll need a ton of experience and a great CV to get past the agent. No real benefits over "permie" working other than higher hourly rate, and opportunity to get breadth of experience. But expect gaps in income, no holiday/sick pay/pension/training. OR you can work remotely for lots of clients, from your own base. Expect low pay rates, gaps in income, no holiday/sick pay/pension/training AND you have to pay for your own hardware/software/desk.
21 years ago I started off doing the former, switching to the latter about 10/12 years ago. Most tasks are a couple of days long (for which you get maybe a couple of hours' payment, as you're competing on price against India/China/Eastern Europe). But then, you find the odd customer who recognises quality over hourly rate, they pay well (sometimes extremely well) and you get loads of repeat business. Some years my turnover has been 2 - 3 times what it could conceivably have been as a "bum-on-seat" contractor with equivalent experience. But those good customers are 1 in 50, maybe 1 in 100, so you have to work hard to sniff them out and then make sure you become indispensable to them.
It's vital you can not only do a decent job technically, but be able to sell yourself to any customer in any situation (and if you can't, identify that QUICKLY and move on to the next opportunity). As someone else suggests, KEEP all your code and build up your own library, of concepts if not raw code. Re-use and save yourself time, and constantly improve and innovate. Don't waste your time learning technologies that are not going to be core to your offering; if a client needs a skill outside your skillset for just a part of a project, outsource it. Network and make connections, and make sure you offer work as often as you seek it.
Don't try it if you're not comfortable with your own company, can't be flexible with your schedules or have financial commitments that require constant income, or if you don't get a buzz from a good job well done. If you deliver a great technical solution it's only you that's going to recognise it, so don't be dependent on feedback from clients. Great when it happens but (mostly) you're a commodity to them and if they give you the time of day they'll expect a discount in return.
I admit I've had some lucky breaks and had pretty good experience (15 years' worth) before taking the freelance plunge, but am so glad I did and can't imagine ever returning to 9 - 5 with just one employer or client.
Jump in and give it at least 6 months, during which time make sure you're working continuously - either networking, marketing, developing your skills (on "example" sites if you've got no clients) and building your portfolio. Constantly review what you do to see how you could do it better/faster/cheaper. If you can, come up with a "product" rather than a service (even if it's just packaged that way). e.g. sell your skills in hourly packages of "database optimisation", or "SEO", or "platform upgrade". Setting out the deliverables first, rather than the skills you'll use, leads to less dispute over whether you've met objectives and gives you a standard framework to re-use with each client, saving you time.
Whichever way you choose, good luck...
|
|
|
|
|
I'm a freelancer, but work is scarce. I don't use the freelancer sites, as way too many projects there for for mobile, and I only did my first Android app last week, and they're a little too impersonal; people don't look at your profile, only your record on the site and rep points.
I have now started an intense campaign to convince small and home businesses of the need to be online, and online properly, not just a Facebook page, and definitely not a *@gamil.com address.
|
|
|
|
|
Yeah, good luck with that Brady (the intense campaign). I'm not so sure the web site is really necessary until the home/small business is actually sustaining itself. I've been in business since 2002, corporation since 2008. My web site is still on my to-do list . My wife used to run a mail order business. No matter how much we advertised the site, and we spent a lot of money, lots of cross indexes, etc. People just kept going to Amazon. Eventually we were assimilated by the Borg.
"As a beginner programmer, no, not feasible (except for, well, that's another story.) To be a freelance programmer, you need experience, an established client base and most importantly, an established network of friends, coworkers, recruiters, and clients that will recommend you to others."
I'll let the OP correct me if I'm wrong, but I think the term "freelance" is the wrong word, maybe it's a location thing. When I hear freelance, I think of the web sites where people go to find someone for a small job. Looking at what the rates are, I just pass, not worth my time. In my world, I think "contract" - as in no employee relationship with the company. This has its up and downsides. I absolutely love it - I can make decisions that are completely sensible - if I need a new laptop or some other piece of hardware, it's a bureaucracy of one. The downside is that your boss is a money grubbing SOB that hates to let you take vacations because you stop billing .
Another plus, thought process toward money. Before I started working for myself, the family conversation for a new car would start with, "Well, I suppose I'll get a raise this year of 3%, and if we can pay off this and that..." Now, I think completely differently. If I want a new car, say that shiny Lexus flirting with me, I think about picking up some extra work. For me, it's freeing. I would point out that I absolutely love engineering, coding, systems design and embedded stuff. It's really not a job for me. And yes, this annoys the hell out of my wife, but she's okay with the work as long as I get paid. When I was an employee, if I worked extra (it happens), she became a badger. If I worked weekends, I met the wolverine.
As for the quote above, the key is the network. You have to have some history to prove at least some skill in the art. You want to start asking people you know if they have any programs or applications they need written. Express some interest in trying to solve a problem. Be prepared to work hard.
My ten cents
Charlie Gilley
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
modified 8-Oct-16 17:06pm.
|
|
|
|
|
The "online campaign" needn't include a website, but I can't get someone up on shared hosting WordPress, i.e. customisation vs. wordpress.com, for around $2.50/pm. I'm also aiming at lesliescatering@gmail.com addresses on business cards and adverts. It's just not as professional as info@lesliescatering.co.za. This would cost a small setup fee and under $10 per year.
As for freelancing, I have also always depended on a network, and the odd random query on Twitter, where I have a great deal of followers based on my technical tweets, and my profile clearly states that I'm a freelancer.
|
|
|
|
|
In Germany, where I live, that is, life as a programmer is pretty good. Job security, nice payment, being treated like a professional instead of like a drone, all checked.
I'm not a web programmer though. That would, I think, suck badly. I'm a desktop/system programmer. I haven't learned anything of that in formal education though, just an autodidact.
|
|
|
|
|
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.".
|
|
|
|
|
|
|