People generally expect you to get into managerial roles as you grow older, and perform tasks such as managing a team, acquiring funding, etc. Programming can be a lot of fun as you will be learning, writing, creating, problem solving, analyzing, and if you are aware of the other avenues you can explore as a programmer, you will be marketing, blogging, networking and generating a small passive income. So, you are not just coding, but performing a wider range of interesting activities.
Here are my top 5 reasons to stay in programming. So, if anybody asks you in a condescending way, Dude, are you still programming using if...then...else?, you know what to tell them.
Reason 1:
First, and foremost, I love being a programmer. I get instant gratification by building the small pieces of puzzles by asking the relevant questions and applying the 16 key areas to see my working code.A firm believer in playing to my strengths.
Reason 2:
As a freelancer or contractor, there are more jobs available for development roles than an architect or a managerial role. So, staying as a programmer helps me find contract roles almost immediately in between contracts without any prolonged gaps. Also, get paid a decent rate, which is in par with the middle management salary if not more.
Reason 3:
Staying hands-on helps me explore passive income generating avenues like self-publishing technical books, affiliate marketing and pay-per click income, etc. Once you leave hands-on development, and get into management, it will be hard to get back into development.
Reason 4:
I find it much easier to work with a computer than with people. Working hours are also more flexible as long as you get your work done. While my people skills are not bad, why take on non-technical challenges that I am not too motivated to solve. I don't want to waste my time and energy in things that I don't do well. I would rather solve problems relating to performance, security, multi-threading, etc.
Reason 5:
As a developer, I get to work on creating abstract ideas and dig deeper into details. I don't have to worry too much about the administrative tasks that many managers have to perform like signing time sheets, seeking approvals, replying to too many emails, etc. Also, no need to attend too many meetings, which are conducted mainly for keeping the team in the loop.
Warning: Having said this, many programming jobs are not your typical 9.0 am to 5.0 pm jobs. It is a time consuming activity, and you can miss out on other exciting things in life.
Managerial job is not easy, and it takes a lot of skills and personal attributes to be a good manager. So, it is important to play to your strengths to have a rewarding and satisfying career.
Land well paid programmer jobs, including as a freelance programmer with these career making "know hows" in job hunting, resume writing, freelancing, blogging, self-publishing, networking, and marketing. Go places as a programmer.
Showing posts with label Freelance programmer. Show all posts
Showing posts with label Freelance programmer. Show all posts
5 tips that will put your freelancing career as a programmer on auto-pilot mode
If you are already working as a Java freelancer or aspiring to become one, here are 5 tips that will put your freelancing career as a programmer on auto-pilot mode. Feel free to share your experience and tips as a freelancer.
1. Diversify: Don't put all you eggs in one basket. Freelancing gives you professional freedom. For example, you can work for 18 months for a large client of yours on a contract basis and take 3 months off to pursue your other passions like self-publishing the book that you always wanted to write or laying the ground work for the start up or an application that you dreamed of.
The hardest part of being a freelancer is to find work continuously. So, it is imperative that you diversify your income streams.
Another 2 reasons why you need to diversify are
So, don't put all your eggs in one basket. Motivate yourself to diversify. Many of the other diversified actions may not bring in the income for many of you as a full-time contract based assignment with an organization, but they can certainly cushion the effects of being without work in between contracts both emotionally and financially.
This also means diversifying your skills into other sought-after programming languages (e.g. JavaScript, Scala, Clojure, etc), technologies (SOA, BPM, BigData, etc) and frameworks (e.g. AngularJS, Hadoop, etc).
2. Maintain a repository of your experience: From my personal experience, this takes time. So, start early by spending 15 to 20 hours every week. Blog your experience on your own unique style to be useful to you and others. As a freelancer, I work with wider range of tools and frameworks. By blogging my experience, I don't have to worry about using a particular tool or framework after a 2 year absence of using it. I know where to go to jog my memory. For example, JasperReports is a very powerful reporting framework. But you don't get to work on it all the time. Blogging will also enhance your understanding as you will be compelled to do more research on the subject. You may also get free tips from your readers in the form of comments. This repository will even come in handy for your future job interview preparation and be the inspiration for your next POD (Print On Demand) book.
3. Get your current employer to say positive parting words like"keep in touch", "see you in 6 - 12 months", or give you a decent farewell. Generally, contractors stay with an organization for a short term, hence they don't get a decent farewell as the permanent staff do. This is quite understandable. But, if you had impressed your current employer both technically and non-technically by getting things done effectively, proactively, and on time, you are likely to hear more positive parting words from your managers meaning that you have done a good job and they won't hesitate to have you back again in the future. I have underlined the word non-technically because your soft skills and attitude are at least equally important as your technical ability to win the hearts and minds of your managers. I have worked with the so called some super star coders who didn't either get the decent farewell, parting words or the further extension they thought they deserved mainly due to lack of their non-technical skills and right attitude.
Some freelancers do stay a very long time like 3+ years by earning the reputation as person "who gets anything that we throw at him/her done". They do have a good handle on the domain knowledge, business processes, and a number of business applications used.
4. Harness the power of networking: It is imperative to network professionally with all your colleagues and superiors via linkedin.com and other avenues like regular catch ups, emails, etc. As mentioned before, only 30% to 40% of the vacancies or job opportunities are advertised and the remaining are filled internally or via contacts. You will also face less competition and scrutiny when you find your future work via your network. You can even eliminate or reduce the share that is charged by the recruitment or consulting agencies. Some companies do not hire directly and have policy in place to deal through recruitment or consulting companies. So, you need to maintain a good rapport with them as well.
5. Constantly challenge yourself to venture into other initiatives that allow you to create your own branding, application, and small business. Don't just expect your first idea or plan to always work. If your first idea did not work, come up with more ideas and plans until it works. For example,
Be an egg hatcher, not a chicken counter. Put your thinking cap on and keep churning out ideas, products, and services.
1. Diversify: Don't put all you eggs in one basket. Freelancing gives you professional freedom. For example, you can work for 18 months for a large client of yours on a contract basis and take 3 months off to pursue your other passions like self-publishing the book that you always wanted to write or laying the ground work for the start up or an application that you dreamed of.
The hardest part of being a freelancer is to find work continuously. So, it is imperative that you diversify your income streams.
Another 2 reasons why you need to diversify are
- The freelancing or contract rates are on the decline due to more competition from the other freelancers who are prepared to drop their rates to get a foot in the door, and due to more competitive off shore development option. When I started contracting in 2003, the large organizations offered hourly contracts rates, and then they moved to daily rates, and now a days opting for a fixed term contract amount.
- The IT salary or rates start to plateau after 8-10 year experience unless you move into more management roles. I know that many of you out there like me, more passionate about the hands-on technical role.
So, don't put all your eggs in one basket. Motivate yourself to diversify. Many of the other diversified actions may not bring in the income for many of you as a full-time contract based assignment with an organization, but they can certainly cushion the effects of being without work in between contracts both emotionally and financially.
This also means diversifying your skills into other sought-after programming languages (e.g. JavaScript, Scala, Clojure, etc), technologies (SOA, BPM, BigData, etc) and frameworks (e.g. AngularJS, Hadoop, etc).
2. Maintain a repository of your experience: From my personal experience, this takes time. So, start early by spending 15 to 20 hours every week. Blog your experience on your own unique style to be useful to you and others. As a freelancer, I work with wider range of tools and frameworks. By blogging my experience, I don't have to worry about using a particular tool or framework after a 2 year absence of using it. I know where to go to jog my memory. For example, JasperReports is a very powerful reporting framework. But you don't get to work on it all the time. Blogging will also enhance your understanding as you will be compelled to do more research on the subject. You may also get free tips from your readers in the form of comments. This repository will even come in handy for your future job interview preparation and be the inspiration for your next POD (Print On Demand) book.
3. Get your current employer to say positive parting words like"keep in touch", "see you in 6 - 12 months", or give you a decent farewell. Generally, contractors stay with an organization for a short term, hence they don't get a decent farewell as the permanent staff do. This is quite understandable. But, if you had impressed your current employer both technically and non-technically by getting things done effectively, proactively, and on time, you are likely to hear more positive parting words from your managers meaning that you have done a good job and they won't hesitate to have you back again in the future. I have underlined the word non-technically because your soft skills and attitude are at least equally important as your technical ability to win the hearts and minds of your managers. I have worked with the so called some super star coders who didn't either get the decent farewell, parting words or the further extension they thought they deserved mainly due to lack of their non-technical skills and right attitude.
Some freelancers do stay a very long time like 3+ years by earning the reputation as person "who gets anything that we throw at him/her done". They do have a good handle on the domain knowledge, business processes, and a number of business applications used.
4. Harness the power of networking: It is imperative to network professionally with all your colleagues and superiors via linkedin.com and other avenues like regular catch ups, emails, etc. As mentioned before, only 30% to 40% of the vacancies or job opportunities are advertised and the remaining are filled internally or via contacts. You will also face less competition and scrutiny when you find your future work via your network. You can even eliminate or reduce the share that is charged by the recruitment or consulting agencies. Some companies do not hire directly and have policy in place to deal through recruitment or consulting companies. So, you need to maintain a good rapport with them as well.
5. Constantly challenge yourself to venture into other initiatives that allow you to create your own branding, application, and small business. Don't just expect your first idea or plan to always work. If your first idea did not work, come up with more ideas and plans until it works. For example,
- Your first freelance job was not as you had expected. You were assigned boring tasks. You were asked to do things that other permanent staff did not want to touch. You mitigate this by asking the right questions about the job on offer at the interview. An interview is a 2 way street. You need to assess the project you will be working on.
- Your first online article, blog, or book might receive bad reviews. Don't let those criticisms stop you from keep writing. Learn from your mistakes and grow stronger.
Be an egg hatcher, not a chicken counter. Put your thinking cap on and keep churning out ideas, products, and services.
What can you do as a programmer to create your own brand?
Many people think that personal branding is just for celebrities or big organizations, but every one of you is a brand. Have you ever been called a "great programmer" or a "go to person" by your peers or coworkers? That description is part of your brand. Personal branding, by definition, is the process by which you market yourself to others. Social media tools have leveled the playing ground and have enabled you to reach incredible heights, at the cost of your time.
Here is the big picture of what you can do to create your own brand as a programmer
You need a shift of mindset, for example, from "piling up of your certifications" to "creating blog posts as your learning tool". How do you learn from your blog posts? 1) Pick a technology, framework, key area, or a tool to learn? 2) Learn about what you had picked via online articles, blog posts, and good books 3) Apply it in a commercial, self-taught, or open-source project 4) Let the world know by blogging about it in your own unique style. Blogging will further increase your understanding and communication skills. 5) Share your blog post via the social media. Your blog post is your repository of your knowledge and experience for your future reference. This is a step process.
1) Pick --> 2) Learn --> 3) Apply --> 4) Let the world know --> 5) Share
Shift your mindset from ranting about "a badly written code at work", "losing the jobs to offshore programmers" or feeling "frustrated about feeling stagnated at work" to positive emotions to inspire you to write your next blog post, create your own application or product, or ramp up your skills to get your next dream job.
Shift your mindset from "commuting to and from work without any light-bulb moments" to "jotting down the ideas that come your way on to your mobile memo" to further think about it at your leisure.
Shift your mindset from "browsing today's online news for 10 minutes as the first thing you do when you get to work" to "researching further on the idea that you had jotted down on your mobile memo ".
This list goes on. You need to make some sacrifices. You also need to be very patient as it can take 2+ years to get into the rhythm and see some "Wow moments like "Wow, I have 400+ followers", "Wow, my recent post has reached 6,000 unique readers", "Wow, my Google adsense income has doubled", etc. It is not easy to sustain your drive and passion as you will have more "ordinary" moments than the "Wow moments". You need to constantly motivate yourself. Consistently churn out unique blog contents, self-published books, new product/app ideas until things click to create more "Wow moments". You need to believe that "Something is about to Spark". You need to grow not just as a techie, but as an internet entrepreneur with good marketing and networking skills. List your strengths and passion to create your own branding. Collaborate universally with other like minded people.
Give others what they need in terms of products, services, training, etc before you take what you need in terms of recognition, more followers, more customers, etc. Opportunities are limitless, and you are only limited by your imagination. Realize your strengths and harness them.
"Logic gets you from A to B. IMAGINATION will take you everywhere" -- Albert Einstein
You may also like --> Why reasons why you need to go beyond just being a programmer
Here is the big picture of what you can do to create your own brand as a programmer
You need a shift of mindset, for example, from "piling up of your certifications" to "creating blog posts as your learning tool". How do you learn from your blog posts? 1) Pick a technology, framework, key area, or a tool to learn? 2) Learn about what you had picked via online articles, blog posts, and good books 3) Apply it in a commercial, self-taught, or open-source project 4) Let the world know by blogging about it in your own unique style. Blogging will further increase your understanding and communication skills. 5) Share your blog post via the social media. Your blog post is your repository of your knowledge and experience for your future reference. This is a step process.
1) Pick --> 2) Learn --> 3) Apply --> 4) Let the world know --> 5) Share
Shift your mindset from ranting about "a badly written code at work", "losing the jobs to offshore programmers" or feeling "frustrated about feeling stagnated at work" to positive emotions to inspire you to write your next blog post, create your own application or product, or ramp up your skills to get your next dream job.
Shift your mindset from "commuting to and from work without any light-bulb moments" to "jotting down the ideas that come your way on to your mobile memo" to further think about it at your leisure.
Shift your mindset from "browsing today's online news for 10 minutes as the first thing you do when you get to work" to "researching further on the idea that you had jotted down on your mobile memo ".
This list goes on. You need to make some sacrifices. You also need to be very patient as it can take 2+ years to get into the rhythm and see some "Wow moments like "Wow, I have 400+ followers", "Wow, my recent post has reached 6,000 unique readers", "Wow, my Google adsense income has doubled", etc. It is not easy to sustain your drive and passion as you will have more "ordinary" moments than the "Wow moments". You need to constantly motivate yourself. Consistently churn out unique blog contents, self-published books, new product/app ideas until things click to create more "Wow moments". You need to believe that "Something is about to Spark". You need to grow not just as a techie, but as an internet entrepreneur with good marketing and networking skills. List your strengths and passion to create your own branding. Collaborate universally with other like minded people.
Give others what they need in terms of products, services, training, etc before you take what you need in terms of recognition, more followers, more customers, etc. Opportunities are limitless, and you are only limited by your imagination. Realize your strengths and harness them.
"Logic gets you from A to B. IMAGINATION will take you everywhere" -- Albert Einstein
You may also like --> Why reasons why you need to go beyond just being a programmer
3 reasons why you should consider becoming a freelance programmer and 3 reasons why companies hire freelance programmers
This is mainly based on working as a freelance programmer for a single client on a contractual basis like 6 to 24 months, and not working on smaller jobs for multiple clients. This gives you better job stability.
Reason #1: Better pay, which is usually between 1.5 to 2.5 times the permanent salary. The reasons for this better pay are
Reason #2: Professional freedom.
Since a freelancer can earn more than a permanent staff, you can afford to take some time off say 1-2 months in between your contractual assignments to pursue other avenues like launching your own products and apps, self-publishing your books, starting your own blogs, and any other creative ventures to channel your knowledge, skills, and talent to brand yourself. The main focus is to attract more customers, earn more passive income, and to grow your small business.
Once you have created your own brand, it empowers you to build and promote yours' and others' products and services through your brand. You can afford to take more vacations as you will be reaping in the benefits of ongoing passive income. New opportunities and ideas will knock on your door as you tend to break free
From --> your comfort zone or routine of working hard, getting home (often late), having a bite to eat, watch a little TV to relax, and go to bed
To --> get your regular work done, and channel some of your experiences and creative ideas towards your own branding and business by spending at least 30-60 minutes each day while commuting to work and before retiring to bed.
Reason #3: Fast-tracking your career and skills
As a freelancer, you can fast-track your career by acquiring a wider range of generic and specialized technical skills. Easier to quit your job if you are feeling stagnated. You have a better chance of staying relevant in terms of technologies, frameworks and tools.
Your non-technical skills like job hunting skills, networking skills, resume writing skills, and interviewing skills will also improve. You will get the confidence that you will be able to find a job in any job market.
Reason #1: To get freelance programmers to do the boring tasks that other permanent staff don't want to take on. For example, working with an outdated technology.
Reason #2: To get the mission critical projects over the line. In other words, to meet the deadline.
Reason #3: To bring in the expertise that are lacked within the current team.
So, it is imperative to learn more about the position at the job interviews to ensure what you are getting into. Ask about the
3 reasons why you should consider becoming a freelance programmer
Reason #1: Better pay, which is usually between 1.5 to 2.5 times the permanent salary. The reasons for this better pay are
- As a compensation for short term or temporary nature of the assignment. Freelancers or contractors can be easily hired and fired.
- To attract specialized and wider range of skills.
- cost to a company for a permanent employee with benefits can be 1.5 to 2.0 times the amount they see in their pay check.
Reason #2: Professional freedom.
Since a freelancer can earn more than a permanent staff, you can afford to take some time off say 1-2 months in between your contractual assignments to pursue other avenues like launching your own products and apps, self-publishing your books, starting your own blogs, and any other creative ventures to channel your knowledge, skills, and talent to brand yourself. The main focus is to attract more customers, earn more passive income, and to grow your small business.
Once you have created your own brand, it empowers you to build and promote yours' and others' products and services through your brand. You can afford to take more vacations as you will be reaping in the benefits of ongoing passive income. New opportunities and ideas will knock on your door as you tend to break free
From --> your comfort zone or routine of working hard, getting home (often late), having a bite to eat, watch a little TV to relax, and go to bed
To --> get your regular work done, and channel some of your experiences and creative ideas towards your own branding and business by spending at least 30-60 minutes each day while commuting to work and before retiring to bed.
Freelancing means professional freedom, but it also means instability and the risk of failure. But if you risk your stability for something more in tune with your professional goals than a traditional job, you have the opportunity to build your name and reputation and reap more rewards. You are the best person to decide what is best for you.
Reason #3: Fast-tracking your career and skills
As a freelancer, you can fast-track your career by acquiring a wider range of generic and specialized technical skills. Easier to quit your job if you are feeling stagnated. You have a better chance of staying relevant in terms of technologies, frameworks and tools.
Your non-technical skills like job hunting skills, networking skills, resume writing skills, and interviewing skills will also improve. You will get the confidence that you will be able to find a job in any job market.
3 reasons why companies hire freelance programmers
Reason #1: To get freelance programmers to do the boring tasks that other permanent staff don't want to take on. For example, working with an outdated technology.
Reason #2: To get the mission critical projects over the line. In other words, to meet the deadline.
Reason #3: To bring in the expertise that are lacked within the current team.
So, it is imperative to learn more about the position at the job interviews to ensure what you are getting into. Ask about the
- technologies, frameworks, and tools used
- mission criticality of the project - e.g. how many registered users?, how many servers on the clusters, the development team size, and number of other systems to be integrated with? (e.g. CRM systems, Data warehouse systems, CMS systems, etc).
You would ideally want reason #2 and #3 to be the reason where you can acquire more skills and experience.
Tip: When you are asked for your freelancing rates, provide a range like $450.00 to $600.0 a day as you don't want to price yourself out of the market and at the same time miss out on great opportunities. After your job interview, you will be in a better position to negotiate further once you had effectively sold your capabilities to your prospective employer.
Disclaimer: This is a general discussion only. It is imperative that you consult your accountant for relevant business structure and tax laws in your jurisdiction.
Subscribe to:
Posts (Atom)
