Posted
by
Soulskill
on Sunday September 09, 2012 @05:24AM
from the do-not-work-on-relatives'-computers dept.

king.purpuriu writes "I'm a computer science high school student, and I'm looking for some work in IT freelancing. I have had a interest in computers and programming for a while, and I began learning on my own before high school. I would like to gain some experience (e.g. what the bulk of the jobs in various markets require, various technologies/frameworks and their usage) and possibly make some money on the side (not expecting too much; at this point, any non-negative amount will do). Key areas are web development, app programming and scripting. What solutions do you recommend? Any tips or tricks of which I should be aware? How should I deal with payment (in terms of fees and commissions; I'm from European country), and what type of work should I seek out? I would also be willing to do some small stuff for free in order to gain experience (small, static sites, small scripts, etc.)."

1. Get some experience not doing freelance (know the tools of the trade) - Dont just default to freelance because you can't find a job.
2. Create a Website with a portfolio of your work. (this does not need to be for actual customers, could be ideas you have come up with and made, eg for web development create some word press sites / joomla or similar, create some sites using the language of your choice, for me that was PHP and the whole LAMP stack. and some sites using a framework like Yii (or what ever). and mingle in some JQuery / JS / LESSCSS.
3. Profit??

I was fortunate enough to have the opportunity to volenteer for a non profit. I was able to complete and maintain a project over a number of years. This allowed me to learn the tools, how to interact with stakeholders, deliver a product, and accept often overly critical suggestions.

i believe, this as much if not more than skills, is critical to freelance work. One must learn the maturity and ability to work through requirements, develop a solution that respects client wishes but is practicle to implement in reasonable time and moeny, and then not panic when all that changes after what you think is delivery.

In the end build something that shows that you know what you are doing Do not accept nothing from a for profit concern . When I was 19 I was billing over US$15 per hour with little experience. Of course not everyone who thought they knew MS Office was presenting themselves as compentant computer analysts and billing minimum wage.

The only problem is that many HR departments - especially at large organizations - won't count any unpaid time (e.g. volunteer time) towards your experience level. IMHO they should; but they don't. It would have jumped me up one or two positions at the one company I was at.

Hi there, I'm replying to you because you're about as high up on the chain as I can find a good place to put this.

We all got Ask-Rolled. It's five days later, and this "king.purpuriu" character is nowhere to be found. I'm not even sure he saw these comments. I get upset when an Ask Slashdot user doesn't enter the comment fray that supposedly he wants advice on.

Being able to "program" is a severely minor part of your job as a software engineer (or similar professions). Most highschool kids dont realise this because their projects are usually of a very small scale (php webforms and such) where you can ignore half the job and it'll still look decent. You don't have to deal with complexity of projects, you don't have to deal with other programmers working with your code, you don't have to deal with security at all since noone is gonna be us

I have to say that the AC GP post is pure weapons grade baloneyum, and I suspect we both may have just fed a troll.

The typist argument is a bit of a strawman, as most people can easily type, and the quality/recognition of the quality of the product is pretty self apparent. A more apt comparison would be to compare building a website, to building a shed. Sure, you can do it yourself, and if you're a handyman, it might look kinda good. But generally it won't come in at the level of quality, or at the real cost (if you yourself are worth anthing, your time is not free) of a seasoned professional who does it day in and day out.

Building software as a programmer in this analogy starts at building a house. How successful do you think the average person would be at that? And for the really big enterprise projects, you're talking a skyscraper. We even have similar roles such as Architect, Developer, Quality Assurance, Project Manager etc. for an undertaking of that size.

I think the people who believe that software engineering will disappear are the same ivy league management graduates who think that shipping work off overseas to be done by teams of monkeys on typewriters in a sweatshop to reduce costs on what they see as a non-revenue generating, but somehow magically essential to the company service as equivalent in quality, and yet cheaper in overall price. Most companies who are doing this, learn the hard truth on the bottom line, or miss it completely and just mysteriously feel it in their wallets.

To the person asking the question about the industry, it's simple. Do interesting projects. Money will come with talent. Unless if you are in a team, with some really good and/or experienced people who can clean up your rubbish, and hopefully that you will learn from as well, your first few projects will fail. We've all been there. Don't be afraid to do so. Like a friend of mine always says, Silicon Valley was built upon the bones of failure, just don't let them be your bones.

Yes, 1+1=2. 2+2=4. 4+4=8. Except when it comes to resources. 1 resources that is 10 times as good, is worth more than 100 resources at 1/10th of their ability. At least with the 1 resource, you don't need the QA to weed out the crap that doesn't work, and over time you don't accumulate anywhere near the amount of code debt.

It's a necessary part, but I think it's arguable that it's minor it doesn't comprise most of what a software engineer needs do know and be good at.

In my workgroup, we have a number of people in the software department. They all know how to program. They all carry the title of Software Engineer. But some of them are really just programmers. Here's what makes the difference in my mind (from the perspective of a hardware engineer):

Ability to assess the amount of work necessary to complete a complex task.
Ability to clearly communicate the status of their efforts to technical and non-technical managers.
Understanding and support of the big picture goals of the organization.
Ability to break a large project into tasks that can be executed by several programmers.
Awareness of the methods used in industry generally to solve problems similar to the sort that we deal with regularly.
Awareness of methods that have nothing to do with what we do.
Willingness and ability to do research.
Ability to devise new methods that improve on previous methods.
Production of well-documented work that can be easily reused by other programmers.
The habit of making code designed to be easily extensible and reusable.
Ability to read an electronic component's data sheet and figure out how to drive it.
Ability to advise hardware and firmware designers what it will take to run their software.
Ability to communicate the limitations of their solution.

I kinda feel like it won't be long until programming is in the same position. Scientists all have a decent enough grasp of programming that they cobble together their own software/algorithms without the need for a software engineer.

Decent enough grasp of programming? Do you even know what that even means. I work, and I have worked, with scientists and EE majors who write copious amount of code (which sadly I have to deal with), code that looks like this (yes, this is the type of code I've had to deal with from such scientists and EE majors, and to be honest some CS majors, I'm not making this shit up):

do{
if (!condition1){ break; }
else{// do some logic
if(! condition1_a}{ break; }
else{// do some logic, and // NOW, HERE IS THE KICKER, SPRINKLED HERE AND THERE
if( error ){// do a recursive call hoping the error goes away }
}
}

if( ! condition2 ){ break; }
else{// some other stupid logic intended to mimic a goto// statement because gotos are evil, but this shit is ok
}

//.... cue several dozen more tests like these..

if ( ! condition_I_lost_count_how_many ){ break; }
else{// do some more logic that you cannot longer follow,// and which makes you can to commit seppuku, and// hang yourself with your own guts
}
while(0);

People who, intelligent as they might be, still don't fucking get why it is important to layer your functions, as opposed to opting for direct access to the same set of pointers spread all over the place. People who tell me they can write a compiler just with a look-up table based search/replace approach. People who tell me programming is nothing but if statements and for loops and that encapsulation and modularity are just academic shit that no one really uses.

Better yet, I've had project managers of a scientist/EE background telling me, and I quote, "we do not need a design, by the time we are in the middle of it, code is different from the design and things changes, so a design is superfluous" (this for critical systems with SLOC counts in the millions.)

It is a meme so consistent across companies it cannot easily be dismissed as a generalization.

You, sir, don't know what the fuck you are talking about, and this mentality is the root of all the evil code monkey shit that we see in the software industry.

Writing code is a discipline in and of itself. I am seventeen years into my career, and I still consider coding to be the single most important thing I do all day. Much of the rest of my day is spent dealing with the fact that other "software engineers" didn't pay attention in school, and the fact that "non-technical people" is a euphemism for "non-intelligent people".

A lot of people know how to code. What sets you apart is being able to work with your client and understanding what it is they want. It sounds simple but a lot of things can go wrong if you don't capture the requirements accurately. Focus on architecting a solution before you begin coding. Draw it out if it helps you but get something down on paper first.

Work on your people skills - a lot. If you want to be successful in this business you're going to have to learn how to work with other people, even ones yo

I have created whole e-commerce systems for free, and that was ~9 years ago. Really, the market is so competitive right now that the only way you're going to get paid with your knowledge is thanks to everyone's favourite abuse of capitalism: information asymmetry. Find small organisations who have so little clue about IT that they think that abilities like yours aren't dime-a-dozen.

Alternatively, accept that your abilities are tools to enhance a career rather than career-worthy in themselves. Either learn to become a software engineer in the full sense, worrying more about learning than earning at this stage, or find something else that you like, safe in the knowledge that your IT skills will make you a more valuable member of any team.

Mod parent up. I speak from first-hand experience if I say that this is how I got many jobs in IT. Personally, I created a website for a big volunteer organization, and many people got to know my name from there on.

After balancing out work, play, and sleep. Fees I would have to charge to come out "even" are pretty high. Any spare effort or time in IT stuff goes toward the obligated family and friends support. Interrupting with paid outside work would have to be paid at around $200 - $250 an hour for it to be worth it for me.

As a student or a young "getting started" person, $20 an hour for some small office IT work four times a month is worth it. For me, I'd have to charge so much that I am

To add to this: there are always small, local nonprofits that can use a hand with IT/Programming stuff. At first it will start out with getting their printer to work and helping them build a spreadsheet template, but if you're savvy you can suggest bringing information into a database and building a php page around it, and build out projects from there. Nonprofits will not only give you experience working with some frustrating end users who don't communicate their requirements well, but also they look gr

Also, if possible choose non-profits that have relationships and/or other volunteers from local businesses who could be exposed to you and your work. This will lead to referrals for paying jobs that could end up being lucrative as well as looking good on your resume.

As important as anything else you can do, find a mentor who is willing to help you by providing advice, critical critiques, recommendations and referrals. After ability, experience is crucial to success so finding somebody who is willing to share theirs is extremely helpful.

This was NOT my experience. I will never work for free again. I worked at a non-profit adoption agency during my last year of high school and my first year of college to gain "real world experience". At least 8 hours a week doing any computer tasks they wanted. Completely remade their outdated website, made online donations possible, calendar of events, etc. Also set up paperless document workflow for office use, fixed and upgraded PCs, fixed printing problems, you name it. The manager that I reported to wo

That's the best part about volunteering. If you find someone who is abusive then bail, and bail quickly. Bailing because of a belligerent manager is also good real-world experience. At least when you're volunteering you can say [paraphrased]: "Look Dickbag, I'm volunteering rather than hanging out with Jane. With your attitude I'd rather hang out with Jane so make it easy on me or else I will." There are plenty of other nfps that would gladly take the help.

You learn plenty of stuff as a freelancer that you don't in a corporate environment. Chief among them, how to get things done on a shoe string budget, and how to pick your customers, contractors and occasional partners.

Not to mention, you get to travel and work outdoor year-round if your job allows it. That's absolutely priceless, considering that most people are too broke to travel at age 20 and too old to do so at age 60.

As a freelancer, you need to be able to operate with a degree of autonomy. You need to be able to take general direction from a client, work out what it is that they need, and provide it. You need to find your own tools, and develop your own skills.

Coming straight out of full-time education, I don't believe anyone has the experience to do that yet. You could be the most talented and enthusiastic person in the world, and perhaps a few years down the line you'd be a great freelancer, but at the start of your career you don't even know what you're missing yet. You can be completely sincere in your desire to do a good job, and still be utterly incompetent without even realising.

Even today, after working in a few jobs as an employee and now being freelance for a while, the thing I miss the most is still the shared experience/peer review side of things. That kind of interaction can be very educational even if that wasn't your original goal, and if you're going to fly solo you need to find a different way to maintain your awareness of the industry and develop your skills. That's difficult even for someone who knows roughly what they're missing, and I suspect it's impossible for someone who doesn't.

Except that whole "develop skills" part is chicken and egg.Elsewhere I offered him a chance for me to be a "mock client", aka as if it were a more serious engagement, but with a lot of leeway for stumbling. For me at least, only when faced with X specific problem did I realize I had a gap in my knowledge. I have a couple of good test case projects for him to chomp on. If I can "stump him", then that's when he will have something to anchor a week/month's worth of study.

I fully agree. I tried freelancing immediately out of university, and it was a bad experience for both myself and my clients. I learned a lot of things the hard way, and would have seen far more benefit if I had had a mentor or two to show me the ropes.

And there are simply a lot of aspects of development that escape you as a freelancer. Working in a team and relying on other developers taught me skills I could never have learned alone.

Even today, after working in a few jobs as an employee and now being freelance for a while, the thing I miss the most is still the shared experience/peer review side of things.

I know this is not easy, but you could see if you could find something to share the company with. It also makes it a bit easier to manage work load because another person can step in, to some degree. I'm in a three-guy freelance startup, and you're right, sometimes you really need someone to talk to.

Oh, I have colleagues I work with: people I talk to at my clients, or more day-to-day there are other contractors who work on different parts of the project. But usually everyone has been brought in to work on a specific part of a system, and it's just not the same as working in the same place and on the same part of a system as others on a team.

You learn plenty of stuff as a freelancer that you don't in a corporate environment. Chief among them, how to get things done on a shoe string budget, and how to pick your customers, contractors and occasional partners.

Not to mention, you get to travel and work outdoor year-round if your job allows it. That's absolutely priceless, considering that most people are too broke to travel at age 20 and too old to do so at age 60.

There's nothing wrong with starting as a freelancer.

Careful there. This is typically a sure way to become a shit code monkey. If the person only cares to get a job, without caring for the train wrecks left behind, then, yeah, there is nothing wrong with that.

Experience is something you don't get out of a vacuum (unless you are naturally talented, which most of us really are not.) The best thing for someone that is starting up in this business is to get a job with a good company or good team known for having some standards and a track record of putting qual

Experience is something you don't get out of a vacuum (unless you are naturally talented, which most of us really are not.) The best thing for someone that is starting up in this business is to get a job with a good company or good team known for having some standards and a track record of putting quality systems up.

I respectfully disagree. The best thing one can do in this business is to create your own business upon hitting the job market -- if not before.

When the OP is done with university, complete with a few internships and several years of part-time freelancing behind him, I fail to see any reasonable incompatibility with becoming a freelance if that's his thing.

The "you need experience from working for a real company" sort of argument has no merit whatsoever for go-getters. (If it did, you'd never hear of people

I think he's just trying to snake some experience under his belt without committing to a full time gig so he will have an advantage when he graduates.

Perhaps looking into charities who might need a one time thing done, seeing if he could get an internship from the regular people there if they already have staffing for it. Looking for internship or something like this at places family members work might be another job option. Even if its doing mundane drone crap that could probably be done in spare time like

Personally, I would recommend that you get a full time job first. After a few years, when you've had time to build up commercial experience and a good couple of names on your CV (resume), you can hop into the freelancing circle.

Freelancers tend to command more money (certainly in the UK a contractor's daily rate will be more than double that of a permanent employee). There are often A LOT of people chasing these jobs, especially these days, and without proven commercial skills and those client names to back up your experience, you could well be ignored.

Start with a full time job first, get the experience and then start offering yourselves as freelance.

in the UK a contractor's daily rate will be more than double that of a permanent employee

Only when you look at it superficially - i.e. comparing the hourly rate with an annual salary. Once you cost in all the benefits of being a permy: paid holiday (25 days + 8 bank holidays), pension, sick pay, training (o.k. that's in just for laughs), not getting told on friday afternoon that you're no longer needed. Plus the freelancer's cost of accountancy, running the business, doing their VAT + expenses in their own (unpaid) time, time without work and driving all over the country for interviews.

When all that is taken into account, the difference is much, much less than it first appears. Generally reckon on the freelancer's rate in £££s per hour being the equivalent of a permies salary in 1000's per year.

When I was in high school, I made web sites for realtors. This was back in the 90s when any sorta webpage would pretty much do. Looking back, there were a lot of areas I was lacking in.

One was simple business skills. First is finding a decent niche to sell your services to. That was pretty much handed to me given one of my parents was in real estate. Apart from that though, is marketing yourself. As a skilled developer, you have the ability to bring value to other people. You have to be able to convince these people of this simple fact. This is a whole different skill/world than development. It's a skill that is equally valuable in life though.

Anyways, a few random tips. Don't undervalue yourself, your skills, and what value you are providing to others. It's probably worth more than you think. As far as payment, work out what is agreeable to both parties. This again comes down to "business skills". Also, a good knowledge of your local laws is handy where as a worst case scenario.

Finally, take what work you can get that doesn't sound horrible to you. Any work is good work. In the "real world", most jobs are not dream jobs. It's one of those sad facts of life.

Don't! Your time is better invested in actual studies, where each university credit will lead to a better position in the future job market. Study harder, study more. Writing code is done by thousands of indians and chinese, and you DO NOT want to be in a position to compete with them.

I would strongly recommend you to get out of the programming/IT sector all together. It is NOT a future business in Europe. It pays poorly, and is subject to massive outsourcing to Asia.

If you must work in IT, consider something which is close to the customer: Sales, Management, Relationship intensive design tasks. DO NOT ENTER A CAREER IN IT PROGRAMMING. You will be competing with millions of poorly paid Chinese and Indians and companies will always outsource to the lowest bidder.

I have 20+ years experience in IT, and I've seen 5 companies outsource all European operations to Asia already, and I see it happening all the time over and over again.

Study hard, study more. Study something which can't be outsourced: M.D., Lawyer, anything in construction.
Avoid IT like the plague!!

In my 20 years in IT (and all of these years spent working for myself), I've also seen quite a bit of the 'outsource it to the lowest bidder' trend. With that said, there's been no shortage of system security gigs and a long list of failed projects that I was chosen to rescue. There are plenty of companies that try to lower software dev cost and see their projects crash and burn. Once they realize that they get what they pay for, they try to save the project by throwing money at it and by

I disagree. In Denmark, if you have a Master of computer science, you're almost guaranteed a job unless you are a complete moron. Those companies outsourcing development now will bounce back and need your help in a couple of years.

But I do agree you need to study, you're not going to be able to compete on salary, and really, if you're out of high school, you are probably better off dabbling with your own projects and learning. Working for clients quickly turns into "how fast can you get this done?" which is

Seriously though, if you just want experience, what about helping out some open source project? Pick something you can keep your interest in, and the moderators on the project can suggest how you can improve your code. It seems from the above advice that freelancing is more for experienced coders. This would improve your own code, help the project and look good on the CV/resume.

Have a BSc or better (normally in Computer Science or similar IT degree), plus several years real job experience. As someone has pointed out, being a significant contributor in Open Source projects may also get you noticed.

It doesn't rule you out of being an IT freelancer, but I suggest you plan an educational and career path, as good pay only comes with good qualifications or job experience.

Have a BSc or better (normally in Computer Science or similar IT degree), plus several years real job experience.

I truly have to wonder why this has become the norm in IT.
Do you really need BSc or better degree to admin windows servers or do basic support?
The OP sounds too young to do successful IT freelancing, but then again I know few people who started their companies during/after high school and are still in business.
Best option would be to find apprenticeship from some medium sized company. Sadly those seem to be nearly impossible to find these days.

I truly have to wonder why this [ needing a degree + experience ] has become the norm in IT.

The answer is simple: it weeds out a lot of potential candidates.

IT work is a cushy number. There's almost no way to gauge the effectiveness of a worker (how to you quantify their creativity?). You spend your working day seated, not having to speak to the public, out of the weather, with little in the way of professional standards to meet and with very few restrictions of how you work.

Because of that, everyone who can't get a job in other sectors is attracted to IT and therefore if there weren't any barr

I truly have to wonder why this has become the norm in IT.Do you really need BSc or better degree to admin windows servers or do basic support?

Aside from that the author was discussing programming, there is also the issue that the job market is clogged with unemployed people with four year degrees. If you don't have at least that, people will mock you. On the other hand, as a contractor you don't need to provide your degree, just your CV. Oh, no CV? Time to get cracking.

On the other hand, as a contractor you don't need to provide your degree, just your CV. Oh, no CV? Time to get cracking.

I know it comes down to semantics, but I'd go so far as to say no CV, rather a brochure to market what you've done, client testimonials (perhaps without giving company names away) and what you have to offer.

I think the biggest mistake a freelancer can make is to set themselves up as someone applying for a job, rather than positioning themselves as someone who'll get a (specific) project done.

That said, if you don't have enough material to put something like this together, I agree: get cracking.

Having worked as a freelancer for most of my worklife, I can chime in with a bit of stuff.

First of all, personal traits:

Self-discipline, self-discipline, self-discipline. You need this to complete your contracts on time, in accordance with the contract. It means being able to sit down and do everything required to fullfill the contract. It also means being able to work with people you dislike on a personal level. It means maintaining a clean, whole persona. No, it doesn't mean three-piece suit, but it means not showing up in tattered jeans, faded t-shirt etc. It means having the discipline to tell your friends that you can't spend time with them if they have a day off, because you need to stick to your schedule. Discipline enough to hold on to your money, because you never know when you'll have a 2-3 month dryspell.

Also, maintaining separate accounts for personal use and professional use, as well as separate hardware etc

Integrity:

Accepting a contract is your word. You have to stick to your end of the contract, otherwise your reputation will suffer. And reputation is EVERYTHING. Do not accept contract that you can't complete, even if the lure of the money is strong. If you believe it's highly unethical to complete a certain contract, feel free to not take it(This is one of the major perks of being a freelancer, not being a wage-slave). Never ever blindly accept your potential clients estimates of time required etc, always do your own estimates BEFORE accepting the contract. If the client is trying to keep you from doing that, they are out to try and get you to work for free, or at least really cheap. Do not EVER complete tasks/favours asked of you by the client that fall outside your contract. Stay out of the office politics. Maintain customer confidentiality within the boundaries of the law and your ethics. I won't sell out my clients data to any competitor of theirs, but if I become aware that the data I'm working on is evidence for a crime, I'll contact the police. I will NOT make myself an accomplice.

Other things:

Try and go into a niche field. The more general areas are oversaturated. You can't throw a stick without hitting a "html/SOAP/PHP/PERL/JAVA/Social Media "expert"". Comp sci PHD's are becoming fairly common that it's close to employers market. There's a shortage of competent software engineers on the other hand, especially for embedded stuff(counts 40 offers listed on agent's summary, while only one of us who works with the agent is currently available for a contract.....)

ALWAYS retain the services of a lawyer when evaluating and negotiating a contract. It will save you a lot of headaches as clients try to catch you in horrible penalty scenarios in the fine print, or even clauses that are completely illegal. Go for solid but not flashy reputation, preferably one who also wants a long term client relationship. If a client says you don't need to bring a lawyer because they have retained the services of one for you, politely tell them you're not interested, because they ARE out to screw you over.

Likewise, an accountant is a good service to retain, to keep track of your economy and keep you grounded in reality. As with the lawyer, go for a solid but not flashy reputation, and who is interested in a long term client relationship.

An agent is also a good thing to have if you become proficient and sought-after. In my case, my lawyer is also my agent. He receives the contract offers, reads them through according to the guidelines I've set for what offers I'm interested in, and if it's something he thinks fits the criteria, I get them forwarded to me. He also maintains a list of more general offers that any of us who retains his services can inquire about

In terms of payment, I use escrow and direct transfers primarily, sometimes invoices. I NEVER accept cheques, which makes quite a few potential US clients rather unhappy.... The reason for escrow is to make sure the client has the ability to pay, and from the third-party escrow account it's

Less demand for it when corps are shopping around for people to hire, and some of the people I know or have been a sort of mentor for tell me that no longer are wages and perks anywhere near as flexible as they used to be.

I'd just like to reiterate how important it is to have access to a good lawyer. Although most of your clients will be decent people, there will be one or two who turn out to be complete assholes. With experience you get better at spotting these people sooner and avoiding them. Alarm bells include: Being hard to reach, not returning your phone calls in a timely fashion, pleading poverty/extenuating circumstances, and asking you to start work at too short a notice. The parent also mentioned att

The attempts to bully lone freelancers is more common than most non-freelancers want to believe. And the worst offenders aren't the big corps, it's often the medium sized corps who want to grow big, and have thus hired the real slimeballs that are too dodgy even for the big corps.

About the milestones, yes, I often do that, either in terms of project achievement, or simply a monthly payment if that is how the contract is defined. That depends a bit on your reputation. If you have a good rep, some clients will actually be more willing to just do monthly payouts, instead of based on achieved goals, because they know that snags can happen, and if you've hit a snag, that's understandable.

Something I forgot to add to my summary: Never ever ever EVER lie to or mislead your client. If you've hit a snag, TELL THEM.... What, why, how, where, when. Unless you've accepted a contract from a slimeball, they will understand. And if you've done your preparations properly, you'll have scheduled time for dealing with problems.

Another thing I should have added:

Acceptable behaviour:

Do not whip out your phone in the middle of a meeting unless it is directly tied to the meeting. If a meeting drags on, politely asking if you can take time to call your family to say you'll be late is ok. Calling your buddies to say you'll be late for that drink is most often a big no-no(And I've found that when it's not, it tends to be a rather annoying place to work at...)

Mindset:

As a freelance software developer, you are responsible for maintaining your code etc. Since you live on your reputation, you can't adopt the mentality of either big corps or open source that you are not responsible for the code, that it is delivered as is. If you write shoddy code, your reputation will suffer, and you don't have a PR department to deflect from that hit to your reputation. Also, the more buggy your code is, the more disturbed and disrupted weekends/holidays/vacations you will have.

Also, if you go into embedded development, unless you do R&D, forget everything about Agile, Release Early&Often and similar. Your code can go into hundreds of thousands of units that don't have a network connection, and thus need to be recalled if they are to be patched. Your project has to be solidly designed and then implemented and tested, before the first release.

Regarding integrity, if the customer is really annoying, take a step back and think about whether you could somehow be the cause (e.g. you're not asking the right questions, or not listening enough), or whether they're truly annoying to work with. In the latter case, fulfil what you've promised and then get out as quickly as possible.

A customer can fire you, but you can also fire them. Don't forget that. Respect and trust from both sides is vital.

"Regarding integrity, if the customer is really annoying, take a step back and think about whether you could somehow be the cause (e.g. you're not asking the right questions, or not listening enough), or whether they're truly annoying to work with. In the latter case, fulfil what you've promised and then get out as quickly as possible."

Indeed, though some of those parts fall under planning and preparation too, i.e the asking of the right questions etc.

At least here in the nordic countries, the ratio of doctoral studies graduates relative to the job market as well as the population as a whole is fairly high, so yes, it can be called fairly common in terms of the specific job market that is software development.

Set up a corporation (corporations are people [slashdot.org]), set up your website with credential, contact, maybe a price list (per hour or per job, whatever), send out offers to companies and to people about your services.

Of-course it's not going to be easy, but you asked the question "how to begin", not "how to really make it a success".

It's quite funny that people with modest coding skills still believe that they can make good money as freelancers. Putting aside the rare occasions when you find (a fat pigeon) some clueless and wealthy investors, if you're not backed up by some company with a nice portfolio, then you're usually out of luck.
A few years ago, I was digging around sites like rent-a-coder to see if it's even remotely feasible to make some money as a freelancer. What I found was a swamp of "experts" who were willing to code yo

I'll reply to you, though offhand I'll remark that I can't find any replies yet by the Submitter.

I had a small project on one of those sites for a little while where I put up an incredibly simple program commission, then see of the few people who replied, who didn't walk into basic proofreading blunders.

Hey Submitter, if you're out there and reading these notes, dig me up, I need a few small things done!! In return, I'll give you a rating as a Slashdot User who is at least modestly respected by the crowd a

Simply start doing small, simple projects next to your regular studies, whatever helps out others and if it pays the bills even better.

Your goal shouldn't be looking for the most large, lucrative projects, just keep it simple so you can gain experience with freelancing without too many headaches. Your long-term goal should instead be amassing a large network of people who know you and who see you as an (up and coming) expert.

Freelancing / consulting has everything to do with the people you know. The larger

You say you're from "Europe" (does that just mean you were born in a european country, but have moved elsewhere - or that you are a legal resident and intend to work in a european country? the difference matters and is huge). Assuming you are hoping to get a job in a european country you need to be aware of the employment laws where ever you are.

You cannot expect to say "I've just finished my secondary education.... I think I'll become a freelance programmer". Nobody will touch you. The first thing you need is experience. The second thing you need is more experience. After that, you need to demostrate a good, long, relaible history of producing successful results in sectors that have lots of vacancies.

You will also find that in some european countries, no company will hire you directly as the employment and tax laws could make the company liable if you fail to pay your taxes. The company could also find that i'ts taken on an employee, and that you have employment rights (long holiday entitlements - 25 days paid, min. , sick pay, pension, and/or that you are unsackable if you "contract" there for too long.

The first thing yo need to do is research the laws in your country, get a degree, get some experience and then consider whether the eceonomic situation in 3 or 5 years time is suitable for a freelance worker.

You cannot expect to say "I've just finished my secondary education.... I think I'll become a freelance programmer". Nobody will touch you. The first thing you need is experience. The second thing you need is more experience. After that, you need to demostrate a good, long, relaible history of producing successful results in sectors that have lots of vacancies.

That's only true if you try to sell your services to larger-sized businesses.

Most small businesses happily hire freelancers, whether in the EU or elsewhere. Any freelancer, really. It's a matter of picking up your phone or meeting the customer in person to present yourself. Almost literally "Might you have a few minutes to discuss your potential needs for IT help?" Most small businesses have very real IT needs that are poorly catered to, if at all. They're usually overworked and understaffed, and cannot aff

Most small businesses happily hire freelancers, whether in the EU or elsewhere. Any freelancer, really. It's a matter of picking up your phone or meeting the customer in person to present yourself.

Not a single chance - except maybe in the moves. The same movies where you can always park right outside the building you're visiting. Where the person you need to see just walks in through the door as you're about to leave. Where.... well you get the picture.

The cold hard reality is that for a lot of "europe" the under-25's unemployment rate is well over 25% and that includes stacking shelves, washing cars and cleaning toilets. There is no chance whatsoever of some kid just out of secondary school walking in to a programming job - unless they happen to be related to the boss.

In fact no small business on the planet will give any "phone time" to cold callers of the "gizza job" variety. If they did, they'd never have time to do any work, themselves. Those SMEs that do have any need for casual IT work generally give it to a relative of the employees: Fred's son/daughter who does a bit of work during the holidays - never to some unknown who says "I wanna be an IT freelancer".

Sorry to burst your bubble, but nobody has ever, in the history of computing, just "picked up the phone to discuss your potential needs for IT help?". It just never happens - except in the movies.

I'm from Sweden, and I've worked as a freelancer most of my work life. And yes, you can get into freelancing from the start, some people do it while they are still in school. There are many small projects that only takes a few weeks etc.

Many places are happy to toss easy contracts out that way, because they also get to test a potential employees abilities in a real-world scenario that way.

No, you can't jump straight to the big contracts, you start out small. In my case, I started out by doing visualizations

stay away from the mainstream.. ie dont just become another windows administrator moron.. there's thousands of them competing for the same position. In fact there are so many that I watch them compete for jobs that pay half of what the same skills would have paid 10 years ago. Learn some of the more specialized tools. My best advise is to run 2 or 3 linux servers in your home working on building up a few skills. Learn the ins and outs of how sendmail actually works. become an expert on IP networking. Learn

When bidding a project, I recommend you split it into two:1) scope and prototype- enumerate exactly what the features will be- create a mock-up of how it will look and function so the client can visualize what the scope includes2) the actual implementation of (1)

Clients never know exactly what they want. Even after seeing it and using it, often they discover it's not quite what they needed. This causes feature creep--which is the bane of all software projects. You have the conundrum:a) you charge a flat fee

To be fair on the client side: In many ways we can't know what we want, it's like Jeopardy - we don't have the knowledge to ask the right questions. I've commissioned a few small things here and there, and I much prefer a dev who will warn me if I make a mistake in my wording that entails 500 hours of work, rather than just clunking down to it, only for me to discover "well, my 7 hours of paid time vanished, and the dev didn't bother to tell me that what I asked for could never be completed in that time."

One other issue that bosses and clients seem to be unwilling to accept sometimes, is an "I don't know" estimate.No matter how similar problem A may appear to problem B, quite often the details may be such that the developer cannot really know how long it will take--it's different enough that it's essentially a new problem to solve. Often times, solving a problem is exactly like finding your lost car keys--you just don't know how long it will take you. These scenarios do occur, an

I have worked freelance/contract almost my entire life, despite leaving school at 15 and only getting an Open University distance learning degree in Computer Science.

The most important thing you need is a portfolio of work that you can demonstrate. This is "proof" of experience and counts for more than almost anything else. Having a university degree is a more of a tickbox line item on your CV, at least it is when you have one, though you may have work harder at proving yourself without one.

The trick to building up a portfolio is: find a problem and then solve it. This is the entire essence of IT contracting/freelance work, people have problems and they need help to solve them. The best way to demonstrate that you are in a position to solve somebodies problems, when you are asking them for money in exchange, is to say "I can do this, I solved a similar problem for X, Y and Z, this is how I did it and I can do the same for you". The catch-22 of the contracting world is that it is difficult to get experience unless you already have experience, and even when you do have experience you can get a little stuck inside a niche.

Individuals, charities, NGOs, online communities are all places that often lack money for "professional" help, but may provide an useful source of problems that need solving where you are not going to get out competed by lack of experience. Compared to an individual who knows nothing about computers, you are highly experienced. There may not be much money involved in such projects, or any money at all, but this also gives you the freedom to say "let me go away and play with this for a while and see what I come back with" and deliberately try to stretch the limits of what you can do, rather than being tied to "I will deliver this specific spec by this specific date for X amount of money". Any job or project that you do, even if it is not paid, is 100% valid to go on your CV (you don't need to mention money on your CV).

My first website I built, www.starsfaq.com was a very simple HTML and just a collection of everything I could find out about an online game. Later I had a girlfriend who was an activist and she convinced me to build www.earthemergency.org which required writing slightly more "pretty" HTML and www.sustainable-society.co.uk which gave me the challenge of writing a database driven Content Management System (CMS) from scratch using PHP. During my first "proper" job-interview for a tiny digital agency, I had a 5 page CV of small unpaid projects like this, websites and small desktop utility programs, plus an unpaid job being webmaster and IT manager for a startup NGO www.worldfuturecouncil.org. I was asked to show code samples of my previous work and managed to get the job. It only lasted three months, and I admit to making a few mistakes during that "first" job, but getting fired from this "perm" job was one of the best things that ever happened to me. I put the job down on my CV, added all the agency projects I had worked on to my portfolio list, knocked off a couple of the smallest projects from my portfolio (that now look "silly" compared to a couple of small "commercial" portfolio items) and went right back onto the job boards with a full time mission to find myself another job. My CV now looked twice as good as it did before and I had "recent" work experience in a full time job. Chance then sent me my first "contract" job, doing 6 months of web scraping for www.hotproperty.co.uk getting paid by the hour, the job after that landed me back in a digital agency www.idmedia.com where I got to do my first "big" website, the now defunct www.sugarmagazine.com. A few years down the line and I managed to get big name brands, and big brand money, working at www.ft.com, www.premierleague.com and www.barclays.co.uk

Each contract, usually working 9-5 and getting paid by the day, tended to last 3-6 months and in each case was a stepping stone to bigger and better projects and bigger and better brand names, and bigger and better rates. During the ascendancy of my career,

because it's fairly normal. I'm not being negative, it's called "Negative Analysis". I started freelancing about 20 years ago and not only do you have to be good technically, you have to work on your soft skills, and your commercial skills. Business people are tricky and you have to be able to play on their level. You are green, you will be ripped off, get ready for it and figure out how to look after your cashflow.

Don't worry about failing, for whatever the reason, pick yourself up and keep going. Don't e

One thing to bear in mind is that there are different degrees of failure. Breaking even on a job or losing face are unfortunate but you can ounce back from those. Indeed, a lot can still be learned from the experience. Bankrupting yourself is much harder. Often when people talk about accepting failure, it usually more along the lines of handling disappointment and facing up to certain realities. Losing all your savings, your house - even your family - is a whole other state of affairs, and one which destroy

The submitter is in Europe (presumably the EU). "Community colleges" are not really a phenomenon here, as university tuition is so low (or, in some countries, education is free) that one can easily complete one's studies at a respected institution, which also offers the possibility of employment in academia while one is trying to find opportunities in the marketplace.

You can do both and learn CNC machining, then CNC programming and eventually how to troubleshoot and repair CNC equipment.

That gear MUST run or the owner loses big money. Trying to do what "everybody else" does is silly. Find jobs where there are very few competitiors and which cannot be outsourced away from the working system.

I spent my first fifteen years doing freelance which grew into my own company with three employees. I started by finding a couple of web forums, communities, where people sometimes asked technical questions. In my case, forums for people running their own web sites (1-3 person companies). If I could answer a question, I would. If I didn't know the answer but could look it up, I looked it up. Soon I had a reputation as the most knowledgeable technical person in that community and people wanted to hire me

it's a dead end and you're racing to the bottom. Either start your own business writing software or get into the Business side. The trouble with IT is there's not much human interaction so you're easy to off shore. I know that sounds harsh, but that's they way it is. Heck, even Best Buy outsourced the Geek Squad. If you haven't noticed they plug the computers into the Internet while someone overseas fixes it. The only thing the Squad's there for is to plug it in and get the Internet working well enough for

1. Volunteer to work on some open source projects. This gives you a visible track record of having worked on real projects and produced code that future employers will be free to look at. Also, if the project is run by people who are good programmers, you can probably learn a lot from working with them.

2. Write some phone apps. It's another easy way to get your work out there where people can see it. It also provides straightforward ways to earn money from your work.

Until at least 25, try to build skills. Main focus should be learning fundamental things, not on earning money. That *includes*, but no way *is fulfilled* by learnign the "framework of the year".

Make sure you get a *solid* (that includes *mainly* theory) knowledge about database systems. Even if it may be or may not be your trade (it isnt mine) it will be crucial in understanding and communicating ideas and approaches from and to others, and also very much structuring your problems. We may like it or not, r

probably the best response in the whole thread. OP displays some naivete if he thinks he can just go into freelancing out of HS, ffs i'm in the same position as you pretty much just at 15 instead of 20... fuckin took me at least ten before i could find my ass with both hands. Even then I would say until I reached about 8 of professional experience (meaning getting paid) could I freelance... but freelancing sucks so fuck that.