I came across this interesting thread – How did you get your first Python job?
Many ideas in this thread apply to finding other software jobs when you don’t have prior job experience to show. Some of the techniques (from this thread and others):
- Create useful apps (in your favorite language) and give them away.
- Work on open source projects. I know a few people who were hired by open source project teams.
- Create a YouTube video explaining how you developed this software and how it works.
- Tweet that you are interested in working on your favorite language – Python/Ruby/PHP/Java
- Try to find companies that use your favorite language and try to get internships while still in college.
- Try to get some part time assignments in your favorite language. You can do this even when you are in college.
- Participate in discussion forums and answer questions with code samples. These questions will give you problems to work on. Solving these problems help others and let you learn.
- Create a web presence (about.me is a great resource) and mention what you do. Keep them updated.
- Blog about your efforts. Include code snippets, pointers to your github pages. Tweet these blog posts (or make them your email signature)
How do we spot genuine talent?
The Little Book of Talent gives us some ideas.
For most of us , the problem revolves around one word : “how.” How do we recognize talents in ourselves and in those near us? How do we nurture talent in its early stages? How do we gain the most progress in the least time? How do we choose between different strategies, teachers, and methods?
In the book Dan talks about Talent Hotbeds and the methods they use. First:
The talent hotbeds are not built on identifying talent, but on constructing it, day by day.
This is a kind of relief. So people can be trained to develop talent. You (the teacher, the institution, the parent) needs to figure out how. There seems to be some general approaches that apply across multiple disciplines.
No matter what skill you set out to learn, the pattern is always the same: See the whole thing. Break it down to its simplest elements. Put it back together. Repeat.
You can take some comfort in the fact that
You are born with the machinery to transform beginners’ clumsiness into fast, fluent action. That machinery is not controlled by genes, it’s controlled by you.Even the most creative skills— especially the most creative skills— require long periods of clumsiness.
This book provides a few tips. It is worth running a few experiments and observing the results.
The struggle and frustration you feel at the edges of your abilities— that uncomfortable burn of “almost, almost”— is the sensation of constructing new neural connections, a phenomenon that the UCLA psychologist Robert Bjork calls “desirable difficulty.” Your brain works just like your muscles: no pain, no gain.
The concept is not new. In several articles about “being in the zone” and “being in the flow” you are at the edges of your capacity – not too hard, not too easy, just stretched a bit. There is no need for intensity. A regular daily practice snacks help.
With deep practice, small daily practice “snacks” are more effective than once-a-week practice binges. The reason has to do with the way our brains grow—incrementally, a little each day, even as we sleep. Daily practice, even for five minutes, nourishes this process, while more occasional practice forces your brain to play catch-up.
The Little Book of Talent by Daniel Coyle is an amazing read. You can view the 52 tips from the book in this Slideshare presentation. I would urge you to get the book and read it. It is a keeper and will teach you a lot about developing talent whether you are a parent or a teacher.
From Disruptive Innovation Can Happen Anywhere podcast Hank looks for businesses who are:
- Trying to solve a big problem
- Working on a unique solution
- Have a great team
When asked what characteristics he looks for in an entrepreneur, David’s answer was pretty simple:
- Enormous Optimism and
- A high tolerance for pain
A great podcast to listen to. Ecorner brings in some of the most eminent speakers and industry luminaries. A weekly podcast, worth following.
I was at a recent event where several budding startups pitched to a guest panel. They were mostly looking for feedback. After listening to about 8 pitches, I talked to the presenters and made some suggestions. I started thinking about the event and felt that I should write down a few things about pitching. Please note that these are very subjective. I am writing them to generate a conversation and most of these are just my opinions. Take them with a pinch of salt.
Ten Suggestions for Pitching.
- Know why you are pitching
- Know your audience
- What is your one minute pitch?
- Focus on your business (not just the product or service).
- Know your market and show it
- Talk about your (potential) customers and their problems
- Start with a story. Make sure that the story is relevant to your business.
- Tell more stories about your research, your assumptions, your conversations with prospects and your discoveries
- Show you understand your business – market, revenues, customer segments and what takes to get the business going
- Ask your questions and elicit feedback and help.
I will expand on these points in future posts. But your pitch may be very different depends on whom you are pitching to and why you are pitching.
Most people, especially in Silicon Valley, are aware that there aren’t enough engineers graduating from college today. By 2020, the U.S. Department of Labor projects that there will be 1.4 million computer science (CS) jobs available, but only enough graduates to fill 30 percent of these jobs. What’s perhaps even more troubling, but frequently overlooked, is that the engineers who are graduating today often don’t have the level of real-world skills in CS they need to meet the requirements of open positions. Why? Put simply, being a CS student is very different from being a real-life software engineer.
This is just US (the estimates are from US Department of Labor). What is the situation in other countries like India and China where the gap between academic institutions and industry are wider? Some possible solutions:
- The Education system may be revamped to bring out better and more skill focused training (as some optional courses or as free training after graduation). This will be taught by very different people, mostly practitioners of the software craft.
- Several institutions may spring up to fill these skill gaps (MOOCs are the first iteration). Hopefully MOOC content can be used by others free or for a modest fee to create blended learning programs
- As the article suggests students participating in Open Source Communities. This is a great idea. However, open source participation is for people with a lot of initiative and there are knowledge gaps between what they are and how to make students aware of them.
- This is kind of meta, but we need to help people learn by doing. We need to teach them not only how to learn but also how to “Learn to Learn”.
- This is just not a problem for graduating students. It applies to practitioners who need to continuously reskill themselves in new areas in software domain.
CS is just one field, facing this problem. There will be others. Not all the training can be done at undergraduate or graduate level in educational institutions.
I think there should be one easy to use resource page on LinkedIn about Jobs. For example a Tech Jobs page for a particular region can contain:
- Job Resources
- Emerging technology trends and their impact on Jobs
- Jobs and Salaries in different regions and different domains
- Tech Jobs in Demand in both Tech and non-tech companies
- Tech Job Hotspots in a particular country/region
- Hiring Patterns (who hires whom)
- Skill Gaps (and opportunities to train and deploy)
- Skill Development Opportunities (for both self learners and training institutions)
- On Demand Skill Builders (a new generation of consultants who can ramp your teams pretty fast)
- Product Sprints as a way to build skills with focus on usable, useful products