Skip to content

Computer Science Degrees are Optional

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.

This Dot Labs is a development consultancy that is trusted by top industry companies, including Stripe, Xero, Wikimedia, Docusign, and Twilio. This Dot takes a hands-on approach by providing tailored development strategies to help you approach your most pressing challenges with clarity and confidence. Whether it's bridging the gap between business and technology or modernizing legacy systems, you’ll find a breadth of experience and knowledge you need. Check out how This Dot Labs can empower your tech journey.

You might also like

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

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

LinkedIn is a social network where you can connect and build relationships with other professionals in your field. A strong developer profile can lead to potential job opportunities and more connections in this industry. But how do you go about optimizing your profile and building a developer network on LinkedIn? In this article, I will walk you through each of the sections for a LinkedIn profile and show you the best ways to optimize them. I will also share tips on how to build relationships with other developers on Linkedin. Table of contents - What title should you use on Linkedin? - How to optimize your profile and background images - Is it ok to not include a profile image? - Do I need a background image? - How to create a custom Linkedin URL - How to optimize your about section - How long should the about section be? - What is the features section in Linkedin? - How to optimize your experience section - Should you show unrelated tech experience on your Linkedin profile? - How to optimize your education section - Should you have recommendations on your profile? - Should you take Linkedin skills tests? - Exploring other sections of the Linkedin Profile - How to connect with other developers on Linkedin What title should you use on Linkedin? A lot of people will say that titles don't matter, but in reality titles do play a role in our society whether we like it or not. If you are currently working as a software developer, then your title can say Software Developer or Software Engineer at XYZ company. If you are a lead, staff engineer, senior, etc., then put that in your title. If you are looking for your first job, then use "Software Developer" and list the technologies you are comfortable with. You want to avoid titles like "Aspiring Developer" or "Soon to be Developer" because that may disuade potential employers from looking at you before they are given an opportunity to understand what you have accomplished as a web developer despite not yet finding a formal role. How to Optimize Your Profile and Background Images When it comes to your profile picture, it is important to remember that you are interacting with other professionals in your industry. You want to choose a clean head shot that would be acceptable in professional settings. Avoid using pictures of you partying in college, or pictures that don't even show your face. You don't need to spend tons of money on professional head shots. You can even have a friend or family member take a head shot of you wearing a nice shirt. Is it Ok to Not Include a Profile Image? If you want to optomize your profile, it is very important to include a profile image. A lot of hiring managers and recruiters are actively looking for developers and your profile image helps put a face to the skills and experience listed. By omitting that image, you might get passed over for potential opportunities. Do I Need a Background Image? A clean and simple background image can help your profile standout. Canva is a free design tool that you can use to create a Linkedin banner. They have dozens of free templates to choose from that you can customize and apply to your profile. Here is what my LinkedIn profile and banner image looks like. How to Create a Custom Linkedin URL Linkedin has a feature where you can customize your profile URL making it easier for people to find you. To learn how to create a custom URL, please read through this Linkedin article. When it comes to naming your URL, I would suggest keeping it short and simple. I would suggest using your name and occupation like this: How to Optimize Your About Section This section is your opportunity to provide a short background on who you are professionally. It is best to talk about the types of projects you have worked on and tools/languages you are most familiar with. It is also good to talk about how you are involved with the community. For example, you might want to highlight your participation in open source projects, or your experience as a content creator. Here is my current "About" section: "I am a classically trained musician turned software developer who enjoys building solutions to unique business problems. I primarily work with React and TypeScript to provide clean efficient solutions to build better software products. I am actively involved in giving back to the community by participating in open source projects like freeCodeCamp. I have also written over 100 technical articles on HTML, CSS, JavaScript, Python and career development." How Long Should the About Section Be? I personally like "About" sections that are a few sentences long. You can also have 2-3 paragraphs for your "About" section. However, I don't think it should be any longer than what can be read in a minute or two because the goal is to provide a brief overview of who you are, not a complete autobiography. What is the Features Section on Linkedin? This is a section on your Linkedin profile where you can show off some of your recent projects and articles. In my opinion, it can act as a small portfolio, and is often underutilized by software developers. Here is a screenshot of my features section. I chose to list my Black Excellence Music Project and a couple of my top performing freeCodeCamp articles. This is a visually appealing way to show potential employers and recruiters your top work. How to Optimize Your Experience Section This section should be reserved only for work experience. There are other sections in your Linkedin profile where you can add volunteer experience or education. Just like on a resume, you would place your most recent jobs first. Try to focus on highlighting significant contributions you made to the projects. Here is an example from my experience section on Linkedin. - Implemented a light/dark theme solution for the This Dot Labs website - Performed accessibility audits for the This Dot Labs website and provided solutions for increasing performance and accessibility scores - Performed extensive smoke testing for client applications and reported bugs and feature requests to the rest of the development team - Built out several UI examples for a client's documentation page If you have freelance experience, talk about the types of projects you built for them, and how you added value to their business. Should You Show Unrelated Tech Experience on Your Linkedin Profile? If you are a career changer like myself, there is nothing wrong with showing your previous work experience from another industry. That shows potential employers that you have worked in a professional setting before and have been gainfully employed for the past few years. As long as you place your relevant tech experience at the top, then you will be fine. How to Optimize Your Education Section If you have a college degree, even if it is not in computer science, definitely list that on your Linkedin profile. If you have certifications, like the AWS certification, then list those as well. There is some debate about whether or not to list certifications from online courses like Udemy. In my opinion, there is no harm in listing those, but it won't carry as much weight with employers and recruiters as AWS certifications, bootcamp certificates, or computer science degrees will. Should You Have Recommendations on Your Profile? Yes! When people can vouch for your work, it goes a long way with future employers and recruiters. This will be especially helpful for those looking for their first full time software job who have done contract work or freelance work in the past. Should You Take Linkedin Skills Tests? There is a section on Linkedin where you can take different skills tests in areas like HTML, CSS, JavaScript, etc. If you pass those tests, then you can list them on your profile. These skill tests don't hold a lot of weight with recruiters or potential employers because they will provide their own skills tests during the interview process. There is no harm in taking them if you want to, but doesn't add a whole lot to your profile. Exploring Other Sections of the Linkedin Profile We have covered all of the core sections of the Linkedin profile, but there are additional sections you can choose to add. Here are some sections you might consider exploring: - Volunteer experience - Projects - Organizations - Publications - Courses You can find all of these additional sections when you click on the "Add Profile" button at the top of your Linkedin profile. For more information and suggestions on how to optimize your profile, I suggest you watch Danny Thompson's Linkedin series on YouTube. How to Connect With Other Developers on Linkedin There are many ways to build out your network on Linkedin. One common way would be to send a connection request to another developer. If you have been following someones' work online, or previously connected through a conference or online meetup, it would be a good idea to connect with them on Linkedin too. Here is a sample message you can send along with your connect request. "Hi, this is Jessica Wilkins and I enjoyed talking with you at the last Women in Tech meetup. I would love to be able to connect with you here on Linkedin too." Now, when that person receives that connection request with a personalized message, they will be more inclined to accept. If you just send a connection request to a complete stranger without a personal message, then you will most likely be ignored. Another way to connect with developers, is by commenting on and sharing others' posts. If someone is sharing an article or posting a hot topic, feel free to jump in the conversation. If you really enjoyed the article, then share it and/or reach out through personal message letting the author know you enjoyed it. Those small gestures will go a long way to build connections over time. Conclusion I hope you enjoyed that article on optimizing your Linkedin profile and building connections with other developers. Linkedin is a very powerful tool and can help you advance in your career. If you are interested in connecting with me on Linkedin, then please visit my profile....

How to Avoid Common Pitfalls and Ace Your Take Home Assignment cover image

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. This usually consists of building out a small project with required tasks to be completed in a set time frame. This is a popular way to test an applicant's skills and assess how they can tackle problems. But what is the best way to approach a take home assignment and what are some common pitfalls people run into? In this article, I will provide tips on how to ace your take home assignment and move to the next round of interviews. I will also provide tips on how to avoid common mistakes with the take home projects. What does the take home project entail? The take home project offers a chance for the prospective employer to see how you approach building out real world applications. For the frontend, you might be asked to work with an API and display some results in a table or card layout. You might also be asked duplicate a web page from a Figma design and add some functionality like search or pagination. For the backend, you will be tested on your knowledge of server side logic, and be asked to design some APIs. There will be a list of criteria that you have to meet by a set deadline. There will also be notes on hosting your app and which libraries and frameworks you are allowed to use, if any. If you want to see examples of take home projects, then please take a look at the following links: - freeCodeCamp take home projects - Github search results for take home projects Make sure you understand the project requirements Before you start building out the project, it is important that you understand all of the project requirements. If you need any clarifications, please ask and do not make assumptions. You don't want to fail a project because you misunderstand the directions. This is also a good chance to see how well the company communicates project details to you. If they are able to offer up clear directions and answer any clarifying questions, that is a good indicator of what it will be like to work for them. If they are not able to provide clear directions and have poor communication skills, then that can also be a sign of what it would be like to work there. Plan out your time efficiently Time management is crucial when it comes to take home projects. Since you only have a short amount of time to build the project, it is important that you first plan out how to build the basic structure. You will need to identify which parts of the project will require the most attention and how long it will realistically take do each component of the project. It is important to account for the time it will take to fix bugs and other unexpected issues during the development phase. Once you have mapped out how long it will take to build a basic prototype, you will need to look into adding extra features to help you stand out in the applicant pool. You will need to decide on which features to add and how long it will take to successfully build it out. Try not to fall into the trap of underestimating how long a feature will take to build. If it doesn't look feasible in your alloted time frame then it is best to rethink it or leave it out completely. Make sure to adhere to best practices and focus on clean code The goal of these projects, is to get a sense of your coding style and technical skill level. This is your chance to ensure that your work adheres to best practices and is clean and readable by other developers. You want to make sure that you are doing things like using clear concise variable and function names, adhering to the KISS and DRY principles, and optimizing your code so it runs efficiency. Your potential employer is not looking for perfect code and understands that you are working under a time constraint. But they do want to get a sense of your code quality and the type of work you might contribute to a project. Do the best you can to write clean readable code while still making sure the basic functionality is in tact. Avoid over engineering your project Take home projects can offer a great opportunity to develop your skills and demonstrate what you can do. But it is important that you do not over engineer your application because it sends the wrong message to potential employers. There is no reason to over complicate your code and stuff you application with tons of extra unnecessary libraries and frameworks. Remember that employers will ask you about your code and technology decisions and if there doesn't seem to be a clear reason behind your decisions, then it can be seen as a negative. Make sure to document your work Documentation is an important part of any software project and you need to be able to demonstrate that in your take home assignment. Make sure to have a detailed readme including your architectural and design decisions, features of the application, testing, how to run the app locally, and a list of the technologies used. You can also include a section on features you would have liked to build if you had more time. By providing a documented project, employers will learn about your thought process and get a sense of how you approach problem solving. Should you include testing in your take home project? I think you should definitely include some testing in your take home assignment. During your planning stage, you will need to set aside some time for coming up with test cases and deciding on which testing tool you will use. If you are new to testing, try to include some small tests to communicate to your potential employer that you understand testing is part of the job. If you are a more experienced developer, your employers will expect you to include testing. How should you approach styling? Even if you are not a natural born designer, it is still important to create a clean professional looking design. It is fine if your design is simple because they are not testing you on your original design abilities. Just make sure that your project is responsive and has good UI/UX. If you are allowed to use CSS frameworks like Tailwind CSS or Bootstrap, then it will make designing your app a little bit easier. How long should a take home project take? Most companies will give you a timeline to complete the project and submit it. In my opinion, 3-5 days is a good range to complete the assignment. If the employer is expecting you to take a couple of weeks or more to do the assignment, then that is a sign they are not respecting your time. There have been a lot of stories of people spending 40-60+ hours on a take assignment and still not getting the job. If you receive an assignment where it is obvious it will take an excess amount of time to complete, then you might consider reassessing the situation and possibly not moving forward with the interview. Conclusion Take home projects can be a great alternative to the typical Leetcode style interviews. This is a chance for you to show off your technical skills amd build an app in the process. It is important that you meet all of the requirements and add some extra functionality to stand out in the applicant pool. Also make sure to document your solution and test out your project before submitting it. I hope you enjoyed this article and best of luck on your future interviews...

My Career Roadmap cover image

My Career Roadmap

Every developer has their own unique roadmap. I love hearing these stories as they’re constant reminders that there is no right way. Anyone can become a successful developer as long as they have the passion for it. I’ll be sharing my roadmap in hopes that someone also realizes that there are multiple ways to be part of the programming world. My journey started when I attended a junior college in an effort to complete the prerequisites for a Biochemistry degree. I actually got far enough to start taking Organic Chemistry courses. However, my heart wasn’t in it. I found it boring and dreaded anything related to those science classes. I did find it cool that I could recognize some of the fancy ingredients in a shampoo. It just wasn’t what I connected with. I knew that something had to change. I was on track to transfer to a four year university in less than two years. I was always interested in computers and thought about programming. I still don’t know why I was drawn to that: maybe social media made it look cool? The dilemma was to either continue or take a risk by starting a whole new career. I didn’t want to spend more time at junior college, so I needed to make a hard decision: either continue with Biochemistry or drop it completely to pursue programming, but still transfer within the estimated year. I probably would have chosen to experiment with both at the same time if I had realized this a couple of years prior. However, I ended up changing majors within a week. It was one of the best decisions I have ever made. My first programming class felt a bit scary. The building was run down and cold. The room was cramped. There were only two females (including myself). The course wasn’t hard or discriminating against genders but it probably felt that way due to being completely new to the field and not knowing anyone. It didn’t discourage me from programming. In fact, I still remember typing up my first Hello World program. It was the feeling of writing code that made me realize that I was on the right track. Luckily, the junior college had opened up the new STEM building a year later. This really made the place more welcoming. It was actually pretty cool. There were outlets everywhere! A dream for programmers that we take for granted. One of the courses that I took was Internet Programming. This was a turning point for me. My professor recommended that I participate in the local hackathon that was coming up soon. He suggested forming a team with the two other females in class. I never once thought he was discriminating. I honestly believe that he saw potential in all of us but we were lacking confidence in a male-dominated world. We participated in the hackathon as a female group. It was my first time working with a team and presenting our project to the public. We didn’t win any awards, but it provided some of the confidence that I was lacking. I finally understood that it didn’t matter what gender you are. I found a love of programming and wanted to be one of the best. I ended up getting recruited for a local internship through the hackathon. I was able to learn about realistic expectations when building a project for a client. The lead developer was also very open to teaching a complete newbie. This is where I learned the basics for web development. It was this type of support that helped shape my career. I graduated from junior college with an associates degree in Chemistry and transferred the next semester. The one regret that I do have in my career is the university that I chose. It didn’t have the best resources for the Computer Science students. The classes were boring and most of the professors didn't seem to care. If you weren’t on the game research cohort, you were just another student passing through. During this time, I got a chance to be part of a research team. However, I decided to accept an internship instead. It was another difficult decision as both had great opportunities. I still think that the internship was the best route as it helped me later on. The internship only lasted for the summer. I learned Polymer during this time. The project was my first deployment and it was used by the city. It was also another great confidence booster. I returned to school with the goal to find my first job before graduation. Truthfully, it was very discouraging, even with my internship experiences. Most companies wanted developers with years in programming. They really don’t make it easy for junior developers. I’m almost positive that I placed over 100 applications. When I did get a response, it was a decline. I also attended the career fair that the university organized. That’s where I found the company that gave me a job offer. I started working for them after graduation. This led to web development in the Drupal world for a little over 2 years. It was a small company but provided development growth. I learned the importance of quality assurance and time management. I also acquired the skill to advocate for higher priority tickets. The most important lesson was that a project can only thrive with a unified team and proper documentation. However, the company had a tremendous downsize due to the pandemic. I was once again on the job hunt. Fortunately, the connections I made during the summer internship helped me find a job at This Dot. There was still an interview process, which I passed due to all the career choices that were made. I’m very excited to be here. I’m working with LitElement projects and more structured work environments. It really is a big difference from a very small company. I’m now pursuing the path of being a mentor, a dream that I had since my first internship. I’m working on improving a mentorship program and making sure my mentee has all the support she needs. I barely have a bit over 3 years of work experience. The time went by very quickly and I’m still excited to be programming. I can’t wait to see where my roadmap will be in the next upcoming years. Tweet me your favorite moment in your roadmap!...

Being a CTO at Any Level: A Discussion with Kathy Keating, Co-Founder of CTO Levels cover image

Being a CTO at Any Level: A Discussion with Kathy Keating, Co-Founder of CTO Levels

In this episode of the engineering leadership series, Kathy Keating, co-founder of CTO Levels and CTO Advisor, shares her insights on the role of a CTO and the challenges they face. She begins by discussing her own journey as a technologist and her experience in technology leadership roles, including founding companies and having a recent exit. According to Kathy, the primary responsibility of a CTO is to deliver the technology that aligns with the company's business needs. However, she highlights a concerning statistic that 50% of CTOs have a tenure of less than two years, often due to a lack of understanding and mismatched expectations. She emphasizes the importance of building trust quickly in order to succeed in this role. One of the main challenges CTOs face is transitioning from being a technologist to a leader. Kathy stresses the significance of developing effective communication habits to bridge this gap. She suggests that CTOs create a playbook of best practices to enhance their communication skills and join communities of other CTOs to learn from their experiences. Matching the right CTO to the stage of a company is another crucial aspect discussed in the episode. Kathy explains that different stages of a company require different types of CTOs, and it is essential to find the right fit. To navigate these challenges, Kathy advises CTOs to build a support system of advisors and coaches who can provide guidance and help them overcome obstacles. Additionally, she encourages CTOs to be aware of their own preferences and strengths, as self-awareness can greatly contribute to their success. In conclusion, this podcast episode sheds light on the technical aspects of being a CTO and the challenges they face. Kathy Keating's insights provide valuable guidance for CTOs to build trust, develop effective communication habits, match their skills to the company's stage, and create a support system for their professional growth. By understanding these key technical aspects, CTOs can enhance their leadership skills and contribute to the success of their organizations....