Where to Start in Learning Computer Programming for a Career

Embarking on a career in computer programming without the structured environment of a traditional college can feel like navigating uncharted waters. If you’re self-teaching and seeking direction, know that you’re not alone. The journey might seem daunting, but with the right approach, a fulfilling career in tech is absolutely within your reach.

The cornerstone of a successful programming career is continuous learning. Just mastering one aspect of Python, perhaps after completing a course like Python for Everybody, is a fantastic start, but it’s rarely the endpoint. The tech industry is dynamic, and your first job might require a different skillset. Therefore, keep expanding your knowledge base. There’s no need to rush, but maintain a steady pace of learning that you find enjoyable. Consider exploring web application development with frameworks like Django for Everybody. This will introduce you to HTML, CSS, and JavaScript – a broader spectrum of web technologies beyond just Python. Progressing to Web Applications for Everybody, you’ll delve into PHP, reinforce your JavaScript skills, and gain deeper insights into web protocols and databases. Further solidifying your database expertise with something like PostgreSQL for Everybody will make you even more versatile. The more diverse your skill set becomes, the greater your confidence will grow in the areas you’ve already mastered. Remember, in the tech world, your value isn’t solely based on your current knowledge, but more on your capacity to rapidly acquire new skills. So, learn a variety of concepts to accelerate your future learning.

A highly effective path to a programming career is to organically evolve your current role into a more technical one. Imagine you’re in a sales position, and each month involves compiling spreadsheet reports of sales performance. You could develop a simple Python script to automate this, generating insightful reports that would be time-consuming to create manually. Present this automated report to your supervisor, inquiring if other reporting tasks could be similarly streamlined. You might find yourself gradually dedicating a few hours each week to data analysis. Enhance the reports with visualizations, turning raw data into compelling graphs. Perhaps your company is considering a website redesign – your growing skills become increasingly relevant. The pattern emerges: with demonstrable skills, opportunities will naturally gravitate towards you. The beauty of this approach is that you can strategically choose your next learning focus based on the evolving needs you observe within your company.

However, if you’re currently unemployed or in a role where transitioning to a technical position isn’t feasible, the path becomes more challenging. Let’s address why securing entry-level programming jobs from outside an organization is often difficult.

The Entry-Level Job Paradox

Consider a small company, like mine, with a lean team. We could certainly benefit from additional help. Ideally, we’d find an entry-level programmer who can quickly contribute to simple tasks, is a positive team player, and is eager to learn and take on increasing responsibilities.

Now, imagine posting a job ad on social media: “Part-time, remote, paid entry-level programmer position available. Minimum skills: Python, HTML, CSS, JavaScript.” The response would be overwhelming – potentially hundreds, if not thousands, of applications and inquiries. As a small business owner managing this part-time, reviewing 500+ resumes to select candidates for interviews, conducting interviews, and narrowing it down to a single hire becomes an insurmountable task. Then comes onboarding and training. What if the candidate’s skills are overstated? Do I have the bandwidth to bridge their skill gaps? What if they discover the work isn’t what they expected? The cycle of hiring, training, potentially letting go, and rehiring is simply too time-consuming and resource-intensive for a small operation.

So, how do small companies like mine typically find entry-level talent? Often, it’s through trusted personal networks. In a real-world example, one of my current employees mentioned a friend during a casual check-in call. This friend, they explained, was in a role that didn’t fully utilize their abilities but excelled at their current job. They possessed some coding knowledge, though not expert-level, coupled with a strong work ethic, positive attitude, eagerness to learn, and willingness to tackle less glamorous tasks to gain experience. We could start them with a few hours per week, a low-commitment trial period. They could maintain their current employment during this “startup” phase, and we could reassess after a few months. If it didn’t work out, no harm, no foul.

This approach solves numerous hiring challenges. It’s based on a referral from a trusted source. The new hire already has a built-in mentor within the team. There’s potential for a valuable long-term employee, and it’s rewarding to support their professional growth. Crucially, expectations are initially low, minimizing risk if the fit isn’t perfect.

Larger corporations often utilize internship programs and similar initiatives to facilitate a low-pressure environment for both the company and potential entry-level employees to assess compatibility. While these programs require dedicated staff time for organization and management, they foster relationship-building in a less demanding context.

Your Action Plan: Breaking into Programming

Continuing to learn is paramount – a point worth reiterating. If you are currently employed, dedicate yourself to excelling in your role. The same qualities that make you a reliable employee in a non-technical field – diligence, responsibility, problem-solving – are equally valuable in a technical career.

For securing entry-level positions, personal connections are significantly more effective than solely relying on large online job boards inundated with applications. While building new connections was more challenging during the pandemic, actively engage socially in relevant communities. Seek out local Python User Groups, Django Girls organizations, or IT professional meetups in your area. Many groups host virtual meetings – join in, observe, and learn. Research the types of tech companies and roles prevalent in your local job market. Investigate the required skills and the companies employing tech professionals. You might be surprised to discover a thriving local tech scene with smaller businesses. I often advise aspiring programmers that being in the right community can lead to career opportunities organically finding you.

Volunteer your skills. Numerous non-profit organizations often require technical assistance with their websites or data processing. This is where a broad skillset becomes invaluable. These organizations often utilize less-than-cutting-edge technology solutions, unlike the neatly packaged programming exercises in educational settings. The real world is often messy and complex. Your value increases when you can navigate uncertainty and intricate challenges. If you adopt a passive approach, waiting for a perfectly defined job requiring only your existing skills, you might be waiting indefinitely.

Consider seeking employment at companies you admire, even in non-technical roles initially. If there’s a small tech company you’re interested in, explore positions in shipping, customer service, or their call center. Take that opportunity, perform exceptionally well, and you’ll gain valuable insights into the company’s operations and needs. You’ll also build internal connections and understand their tech stack. If the company uses unfamiliar technologies, consider taking a course to upskill.

Getting your foot in the door, even in a non-technical capacity, is a significant step towards a technical role within the organization.

In Summary

Commit to continuous learning, cultivate friendships within the tech community, volunteer your skills, and attend social events frequented by technology professionals.

Throughout my 40-year career, I have never had a job interview with a complete stranger. My first technical role originated from a casual conversation with a fellow student in a Calculus class. He mentioned, “I work as a student consultant helping people use computers – we need more people, are you interested?” It was a part-time role paying $4 per hour in 1975. But for me, my career trajectory began with a simple, offhand remark from my new friend Kirk in a Calculus class in October 1975.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *