Best path for a switch to Computer Science?

In summary, the individual has a BS in Mechanical Engineering but has developed a strong interest in Computer Science. They are considering a career change but are unsure of the best path to take. They are currently considering a post baccalaureate certificate program from NC State, which covers all the necessary courses for a career change or graduate school admission. They are seeking advice on whether to pursue formal education or self-study, as well as the quality of NC State's CS program in relation to graduate school admission. Ultimately, the individual is interested in gaining both domain-specific and non-domain knowledge in order to become a successful programmer.
  • #1
respect_the_S
14
0
I have a BS in Mechanical Engineering and I've been out of school for almost 5 years. Several months back I started learning Java just for kicks, but I've reached a point where I'm pursuing more and more knowledge of CS concepts on my own, and the interested level is far exceeding that of MechE.

I'm heavily considering a slight shift in career paths towards CS, but I'm not sure how to go about it. At this point, the choices seem to be either get formal education on the prereq material and then go for the MS, or do some rigorous self study, get involved in an OS project, and just find a new job doing what I want to do.

The problem with the latter is that, from what I've read, it sounds like that may work for programming/web development jobs, but I'm not sure I want to do that forever. I don't want to cut myself short on education and then miss out on opportunities for interesting positions that require formal education. I also like the structure of formal education, and that assignments push you to solve certain problems you may tend to brush over in self study.

Right now I'm looking at the computer programming post bach certificate from NC State, which says it is adequate prep for a career change in itself, or for prereq coursework for grad admission. I've checked many program course outlines, and this seems to cover all the nuts and bolts courses such as data structures & algorithms, architecture, operating systems, discrete math, etc.

So my question is two fold: 1) which path (formal/informal) is recommended based on the experience of those who've gone before me and 2) assuming the formal path, do you know if NC State has a good CS program that will help me get into a grad program if I take their certificate coursework.

Link to cert program if you're interested: http://engineeringonline.ncsu.edu/PS/CPC.html

Thanks!


Edit: I'm focusing on NC State at the moment because it's fairly affordable (300-400/credit hr) and it's a distance program (I'm in WNY)
 
Last edited:
Physics news on Phys.org
  • #2
Hey respect_the_S and welcome to the forums.

The first thing I need to ask is if you are interesting in Computer Science or computer programming?

If you are interested in computer science, then it would make sense to go back to university but if you are interested in computer programming IMO it would not.

The thing about computer programming is that you learn through some kind of project based work. Projects can have mini-projects and subtasks and all of that but the idea doesn't change.

What you are better off doing is picking a domain and then just for a lack of a better word 'diving in' getting used to the system, the paradigms used, the important design aspects that correspond to understand the link between the domain and the design of the code all in conjunction with all of the programming principles that are not domain specific.

You have to have both domain and non-domain skills but if you only have one then you are going to be screwed. Also having non-domain knowledge means that in all likelihood you will have to have some domain-knowledge as well as there is a bit of intertwining going on.

So what do you define as domain knowledge/skills? Basically I would define it as anything that does not contribute to an understanding of the domain with respect to any of the code or other relevant documentation or materials pertaining to any part of the system and its attributes.

Non-domain knowledge will include all the information about a particular language, standard algorithms, standard data structures, standard designs, classes, templates, yada yada that are independent of the domain.

But the thing is, you need to know about the domain which means that you will need a reference point and that reference point is a complex, mature repository that has been designed or evolved to meet the needs of the users of the repository.

If you have already done enough coding to know what's going, then just start some projects in your domain and go from there. If you are not confident enough that you can do this and figure that it might be a good idea to get some training, then I would recommend instead of going to university see if you can get a few books and just start writing code.

The reason I say the above is that you already have all the tools you need and the main one is a computer and access to the internet. The internet can provide all the developer tools you need like an IDE for C++ or the Java SDK or the Python dev environment or whatever.

It also provides (the internet) all the resources for getting information, asking questions and doing all that kind of thing.

On top of this it also provides a lot of open source repositories for a variety of different domains which will give you some of the domain knowledge required to slowly master that domain.

So yeah IMO, for computer programming skip uni and just start on projects and build up your expertise but for something like Comp Sci if its not just glorified programming but the real pure stuff then a university might be the best option.
 

Related to Best path for a switch to Computer Science?

1. What skills do I need to switch to Computer Science?

Some essential skills for a switch to Computer Science include problem-solving, critical thinking, attention to detail, and strong analytical skills. Additionally, having a strong foundation in math, coding languages such as Python and Java, and understanding of data structures and algorithms can be beneficial.

2. Is a degree in Computer Science necessary for a career in the field?

While a degree in Computer Science can provide a strong foundation and open up more opportunities, it is not always necessary. Many successful professionals in the field have self-taught or gained experience through other means such as coding bootcamps or online courses.

3. How can I prepare for a career switch to Computer Science?

There are several ways to prepare for a switch to Computer Science. Some steps you can take include learning coding languages, practicing problem-solving and critical thinking, building projects or participating in coding challenges, and networking with professionals in the field.

4. What are the job prospects for Computer Science professionals?

The job prospects for Computer Science professionals are very promising. According to the Bureau of Labor Statistics, employment in computer and information technology occupations is projected to grow 11% from 2019 to 2029, much faster than the average for all occupations.

5. What are some common career paths in Computer Science?

There are various career paths in Computer Science, including software development, data science, web development, cybersecurity, and artificial intelligence. Within each of these paths, there are also different specializations and roles, providing a wide range of opportunities for professionals in the field.

Similar threads

  • STEM Career Guidance
Replies
11
Views
789
Replies
18
Views
3K
  • STEM Career Guidance
Replies
5
Views
944
  • STEM Career Guidance
Replies
19
Views
3K
  • STEM Career Guidance
Replies
5
Views
4K
  • STEM Career Guidance
Replies
5
Views
1K
  • STEM Career Guidance
Replies
30
Views
5K
  • STEM Academic Advising
Replies
6
Views
1K
  • STEM Career Guidance
Replies
2
Views
1K
  • STEM Career Guidance
Replies
4
Views
2K
Back
Top