General

Computer Science Degrees are Optional

Maria Loza
5 min read
Computer Science Degrees are Optional
This article was written over 18 months ago and may contain information that is out of date. Some content may still be relevant, but please refer to official documentation for the latest information.

Degrees aren’t always needed. In today’s job market, there is most likely an alternative option for a degree: self-taught, bootcamps, etc. However, there are still companies that require a college degree. One of my colleagues at work expresses that “unless you really want to work as a research engineer for one of the very large tech companies like Google, etc I don’t see the value in an advanced degree in CS.” This statement should not discourage you from pursuing this career path, especially if you want to become a research engineer.

There has been a recent conversation at work that provided a number of those with a college degree versus those who do not. Computer Science degree pie

The College Path

I am categorized with those who have a Computer Science B.S. degree. It was the safe option for me. I would have the degree just in case (being the first in my family to obtain one was also a motivator) and I gained some coding experience through courses. I still don’t regret taking this path. It’s given me the opportunity to get a glimpse into both sides.

However, college only teaches you so much, especially where you attend. My college was still very new compared to its affiliates, so the Computer Science department was still developing. I was taught the basics (how to do a for loop, etc).

The classes were boring and I never felt that the important parts of coding were taught. The closest I got was through the Software Engineer course that was taught by a Facebook developer. He showed us how things really went in the “real world.” We were assigned a semester project that would be presented at the Facebook headquarters in Menlo Park. This class taught me the importance of teamwork: team interaction, code management, and leadership roles.

I came out of college with a good programming foundation. It also provided me with internship experience. The college I attended advertised a local hackathon. I wouldn’t have known of this event occurring in such a small city if I had not taken the college route.

I was introduced to the founder of a local website creation company. Due to my professor’s recommendation, I became one of the interns at this location. It was the first time that I was able to get a glimpse of how business was conducted with a client. Unfortunately, this wasn’t taught in any of the courses I took.

College gave me the extra time to figure out what type of programmer I wanted to be. I’ve coded in multiple languages like Java, Python, and React. I even dabbled a bit with game development. I was able to find the most joy from working with web development.

College can also provide one of a kind experiences. Some partner with local businesses to give students an opportunity to get work experience. I was fortunate to be enrolled in a university that had this opportunity available.

In partnering with a local business as a student, we were presented with a problem and it was our job to create a proof to concept and demonstrate it to our client. We had the entire semester to complete the solution. During this time, we had multiple deadlines (just like any real project) that we stressed over. There were times that we did have to work late into the night because a bug was found before our next release.

We were thrown into multiple situations that I have seen occur during my work experience. These are the moments at college that helped me navigate through stressful moments at work. Bootcamp may not provide the same opportunities.

Another of my colleagues who went to college was able to participate in a similar program. He worked with the company for two years, forming connections with his co-workers. It was one of these connections that led him to accept a job offer with another company. If it had not been for this company being persuaded to attend AngularConnect, he might not have been introduced to our current CEO.

He does voice that college is not needed to be a good developer. However, he does add that “If I hadn't gone to uni, who knows what kind of path I'd have taken, but 100% the connections I gained as a result of uni has helped me get to where I am now.

Alternative Paths

All roads lead to the same destination. It just depends on where you want to learn your base. Another of my colleagues stated: “It's like building a foundation before building the house.” I agree: people want to hire someone that understands the importance of the foundation regardless of the background in order to build a strong house.

One of my professors said something that still stays with me: "School only teaches you about 10% but your job will teach you the rest." I completely stand by this. I was able to understand the basics like Git by the time I entered the work field. However, the business side like time frames was something that I picked up from trial and error at work.

This experience has been iterated at work as well:

“Almost all of my learning of development was on the job, although I've reached back to my coursework as I got further in my career to help me make sense of more of the tougher algorithmic challenges on some projects I worked on in the past.” - Colleague

I’ve only been in this field for about 4 years. I’ve met strong programmers on both sides. I’ve seen a teacher’s aide that can write structured scripts for a complex game. I’ve also seen a developer (without attending college) who has delivered many successful projects at such a young age. It’s their commitment to become a better programmer that has them thrive in any environment. It just boils down to which environment you want to experience.

“I don’t really regret anything about going to university except that I wasn’t the best student in my late teens and twenties so I wish I’d had the option of fast tracking the practical knowledge and jumping right into my career. I wish coding bootcamps had been available to me instead of college honestly.” - Colleague

My college background never was asked when I was being interviewed by the companies that ended up employing me. It all came down to my coding skills and the connections (along with my personality). It really depends on the company who is hiring. That’s why it’s important to do your research before investing your time in the application process.

College is not for everyone. Don’t let the pressure stop you from doing what you want to do with your career. Success as a programmer can be accomplished regardless of a degree. There are pros and cons with any path.

Code bootcamps can provide the same benefits as college. Some bootcamps might be even more intense than college, which can lead to great learning opportunities.

I’ve met an amazing developer who came from a bootcamp. Her skills have landed her a position with a company as a developer within months of her graduation. There hasn’t been a task that she wasn’t able to handle.

Bootcamps are just as beneficial. Remember, it’s not where you learn the foundation that matters, it’s whether you understand it. Keep learning, coding, and seeking out connections.

Tweet me your coding start. I would love to share your story with other people who need that extra motivation to get one step closer to their goal.

About the author

Maria Loza

Maria Loza

Software Engineer

I found my passion in web development while pursuing a Chemistry bachelor’s degree.

Keep reading

View all posts →

Effective Communication Strategies Within The Software Development Organization

Have you ever been in a situation where you thought you were communicating effectively, only to realize later that the other person misunderstood what you were saying? Have you ever communicated with someone only to hear that they felt you provided way too much detail, or that you didn’t provide nearly enough detail? Communication in the workplace is how ideas, updates, directions, etc are transferred to others. Each party in a software development organization has differing needs and expectations when it comes to workplace communication. By learning to tailor your communication to meet the needs of each stakeholder, you can become a more effective communicator and achieve greater success within your organization. The requirements of various parties that you interact with in the workplace can vary wildly depending on several factors. Your awareness of these individualized communication preferences and how you can give each party what they want and need will impact your effectiveness in your daily activities, your perception by others, and even your upward mobility within the organization. That's the power of communication, and why it's so important to master effective communication strategies in the workplace! In this article, we'll explore the different types of stakeholders in a software development organization, the communication strategies that work best for each group, and how effective communication can help you advance your career in the industry. We'll start by discussing the difference between “communication” and “effective communication”, before diving into the different types of stakeholders in a software development organization. Then, we'll explore the communication strategies that work best for each group, and provide actionable tips for improving your communication skills. Communication vs. Effective Communication When it comes to communication, it's important to remember that the intended message is only effective if it's received and understood by the recipient, regardless of their background or level of familiarity with the topic. Effective communication is about sharing thoughts, ideas, opinions, knowledge, and data in a way that ensures that the message is received and understood by the recipient. With effective communication, the sender and receiver leave the exchange feeling satisfied. There is a shared understanding of what was intended to be transmitted by the sender. Stakeholder Types In any organization, you have many different types of parties involved in a software project. Let's group the parties involved in software development into three categories for the sake of clarity: Development Team This consists of individual contributors, project managers, scrum masters, QA testers, UX designers, UI designers, architects, etc. Product Team The product team is made up of a diverse group of individuals, including product owners, business analysts, architects, and more. Executive Team CTO, CEO, etc. Each of these parties requires a different type of communication, a different level, and has different needs from your interactions to allow you to provide value from what you are saying and to for them view you as an effective communicator. Let’s talk a bit about what each of these parties needs, and how you can interact with them in the most meaningful way possible. Development Team This is the most detailed version of the interaction. This group needs to be communicated with on the level of individual tickets and the details of those tickets. When interacting with the development team, it's important to focus on the nitty gritty details of each task, ensuring that everything is sorted through meticulously. With this group, we will sort through specific implementation details. An example of interaction with someone from this group might look like this, “I am currently working on ticket 473, and trying to get the checkbox to behave correctly during testing. I have no blockers currently.” Product Team This group will be communicated with at the level of features and larger increments of work such as project milestones. This group is interested in chunks of a project, milestones, progress on the overall initiative, etc. An example of interaction with someone from this group might look like this, “The team is wrapping up development of the new Project X User Interface and will be moving to the implementation of the functionality next”. Executive Team This group is interested in the conversation at the highest levels of abstraction. Generally, they will be more concerned with things at the overall project level. When updating the executive team, it's important to provide high level updates that summarize progress and focus on next steps. For example, you might say, 'We're making great progress on Showcase X and are on track to complete it soon. Next, we'll be shifting our attention to project Y.' Types of Communication What are some of the types of communication? It’s a great question. When you begin to study various communication styles, you will read about different personality types, and how those personalities interact with the world around them. You might hear things like aggressive, passive aggressive, passive, and assertive communication styles. While understanding these can help you communicate effectively, we will focus on how different roles in a company require different levels of detail and specificity in their interactions. Your Natural Communication Style We all have a natural way that we prefer to communicate. Some are very direct and assertive. We might tend to be very to the point, with no filler, no fluff. Others might naturally tend to be more verbose, to fill in lots of details and context and information. Some naturally meet somewhere in the middle on the spectrum of detail vs direct higher level type of communication. There is no right or wrong answer, but you must be aware of your natural tendencies in conversation, and know how to use those effectively, or tailor your communication style to a specific situation or audience. Benefits of Tailored Communication What are the benefits of tailored communication? The primary benefits of tailoring your communication to different stakeholders are that you can provide each person with what they want and need in a way that resonates with them. For instance, I once had to adapt my communication style when working with a highly detail oriented developer who preferred a more granular level of communication. This eases the amount of effort required by the other party to understand you, and allows them to be more effective in taking your message forward. It increases the perception of your effectiveness, and credibility in their eyes as well. If people know that you are someone who can communicate with multiple parties with varying interests and needs, and do so effectively, you will be trusted with more responsibility, and be given more opportunities. Using Effective Communication To Advance Your Career As you can see, developing effective communication skills is a powerful way to advance your career in the software development industry. How have you seen effective communication impact your work? People who are seen as effective communicators have staying power in an organization. They are viewed as competent and necessary. They are given positions of authority and trusted to get things done. I remember that, when I was just starting out in software development, I struggled to communicate effectively with stakeholders at different levels of the organization. But over time, I learned the value of tailoring my communication to each person's unique needs, and it has paid off in my career in countless ways. Basic Strategies For Improving Your Communication Know your audience When preparing for a presentation or conversation, it's essential to consider your audience and tailor your communication style to their needs. What are some strategies you use to ensure your message is received and understood? Write notes in advance, when possible Draw an outline or even the bulk of what you need to deliver before the time comes. Even if you don’t ultimately use these notes directly, preparing them will help you to distill your thoughts and clarify your message, as well as review that they have the appropriate amount of detail for the intended audience. Practice your delivery Though you will not always be giving a speech, talking through what you plan to say will help you to see gaps, smooth the flow, and make sure that you are comfortable with the material you will be presenting or communicating. Conclusion In this article, we learned about the importance of effective communication, strategies for improving your communication, and the direct and indirect positive impacts these improvements can have on your effectiveness and value in the organization. We explored various strategies and approaches to improve communication. Development in this area can yield amazing results for you as you make the investment to improve your skills. We hope you enjoyed this article, and found it helpful. If you have any questions please feel free to join the discussions going on at starter.dev or on our Discord....

Ken Slachta6 mins
GeneralSoftware Engineer

How to Avoid Common Pitfalls and Ace Your Take Home Assignment

During the interview process, you might be asked to complete a short take home assignment consisting of building out a small project with required tasks. But what is the best way to approach a take home assignment?...

Jessica Wilkins6 mins
Career

How to Write a Strong Resume That Will Be Read by Hiring Managers and Recruiters

Applying for software jobs can be stressful and time consuming. One of most stressful components is writing a resume. A lot of people struggle to write strong resumes and end up paying the price by getting passed over for tech interviews....

Jessica Wilkins7 mins
Career

How to Optimize Your Profile and Build a Developer Network on LinkedIn

LinkedIn is a platform designed for professionals to connect with recruiters and potential employers. If you invest the time to build a strong developer profile it can lead to potential job opportunities....

Jessica Wilkins8 mins
Career