2 answers
2 answers
Updated
Dr. Drew’s Answer
Computer science is a broad area of interest. Are you looking at coding, networking, databases, cloud computing, AI? Don't worry if you can't answer that, you will get a feel for it later, but if you have an idea where you want to go, that will help focus you. First, you may want to pick up a coding book or take a community college class, or online (Codeacademy, Code.org, EdX, Coursera, Udemy, etc.) on programming. There are many great introductory books on a variety of programming languages. You might want to look at Java, Python, or even C/C++. I usually don't recommend Python as a first language for someone who wants to go the computer science route though. Python is powerful and easy to learn, but it can make some bad habits if you are not familiar with proper coding techniques. There is a big difference between someone who can throw together a small program or a single-person project and a professional coder who works in a team. Knowing what happens "under the hood" is a great way to really get better at programming, so I often recommend some basic C or C++ books and/or courses. You may never get beyond the novice level C programming, and never us it again, but it will teach you why certain techniques and standards are used.
Even if you never become a professional programmer, the basics of programming will teach you logic and troubleshooting. You may also want to look at hardware. Many people have a deep fascination with the inner working of a computer. Computer Engineer might be an option if you want to design hardware or chips. This is related to computer science but much heavier in math and engineering.
Web design is something you can touch on without a great deal of background. You can look into HTML, CSS, and JavaScript to get some experience there. You may also want to look at some web related programming languages such as PHP, Python, and Ruby. You may want to look at some basic SQL (and maybe NOSQL) databases as databases are at the core of most websites these days.
Databases are a career in themselves. MySQL, PostgreSQL, MSSQL, and ORacle are the big SQL databases. There are also other types of databases such as NOSQL that deal with data differently (there are several different types of NOSQL). You can look into databases such as MongoDB, MEAN stack, Apache Cassandra, Elasticsearch, or SolidDB.
How about security? Cybersecurity is in high demand. Knowing about cybersecurity is more than just knowing how to find flaws in systems. You need to understand policy and user management. You can pick up some cybersecurity books and see if that is something that interests you.
Networking is something that can be used by a variety of computer science paths as the network is how everything communicates. If you can get an old router and some cheap switches, you can grab a book on basic networking and look into how everything talks on the Internet.
No matter what topic you are interested in, there are communities out there that can help. Check Reddit, StackOverflow, online forums, discord servers, etc. Google searches will show you vast communities or computer science professionals that can help. Be respectful and you will find people are more than happy to help you learn.
Now that we have looked at your interests, let's look at how to gain some experience. You may be lucky to find a local computer shop that can hire you part time, but it's unlikely and you would be limited in scope. Getting some experience from books/classes and practicing can lead you to some groups that could use some help. Open Source projects can be a great place to get some experience. These are usually run by a group of dedicated volunteers who enjoy helping the community. Your mileage may vary as some projects are looking for experienced coders while others will take any help they can get.
If you go the web design route, local non-profits may be interested in giving you a chance. Networking and databases are a bit harder to get experience in, but setting up some local virtual servers and playing with setting up and running a network and servers can go along way.
At your age, paid gigs are going to be hard to find, but if you don't mind self-educating, there are a great deal of opportunities to learn. But here is the thing, the difference between a decent computer science professional and a great one, is the desire to constantly learn new things. Computer science is always changing with technology and someone who is eager to learn is going to go further.
Most employers are not expecting a student out of college to have working experience, but if you have taken the initiative to learn new concepts and play around with them, you are already a tier above other students looking at that job. Telling an interviewer about your home lab and how you setup several websites/databases/networks/worked on open source projects, will really help.
Even if you never become a professional programmer, the basics of programming will teach you logic and troubleshooting. You may also want to look at hardware. Many people have a deep fascination with the inner working of a computer. Computer Engineer might be an option if you want to design hardware or chips. This is related to computer science but much heavier in math and engineering.
Web design is something you can touch on without a great deal of background. You can look into HTML, CSS, and JavaScript to get some experience there. You may also want to look at some web related programming languages such as PHP, Python, and Ruby. You may want to look at some basic SQL (and maybe NOSQL) databases as databases are at the core of most websites these days.
Databases are a career in themselves. MySQL, PostgreSQL, MSSQL, and ORacle are the big SQL databases. There are also other types of databases such as NOSQL that deal with data differently (there are several different types of NOSQL). You can look into databases such as MongoDB, MEAN stack, Apache Cassandra, Elasticsearch, or SolidDB.
How about security? Cybersecurity is in high demand. Knowing about cybersecurity is more than just knowing how to find flaws in systems. You need to understand policy and user management. You can pick up some cybersecurity books and see if that is something that interests you.
Networking is something that can be used by a variety of computer science paths as the network is how everything communicates. If you can get an old router and some cheap switches, you can grab a book on basic networking and look into how everything talks on the Internet.
No matter what topic you are interested in, there are communities out there that can help. Check Reddit, StackOverflow, online forums, discord servers, etc. Google searches will show you vast communities or computer science professionals that can help. Be respectful and you will find people are more than happy to help you learn.
Now that we have looked at your interests, let's look at how to gain some experience. You may be lucky to find a local computer shop that can hire you part time, but it's unlikely and you would be limited in scope. Getting some experience from books/classes and practicing can lead you to some groups that could use some help. Open Source projects can be a great place to get some experience. These are usually run by a group of dedicated volunteers who enjoy helping the community. Your mileage may vary as some projects are looking for experienced coders while others will take any help they can get.
If you go the web design route, local non-profits may be interested in giving you a chance. Networking and databases are a bit harder to get experience in, but setting up some local virtual servers and playing with setting up and running a network and servers can go along way.
At your age, paid gigs are going to be hard to find, but if you don't mind self-educating, there are a great deal of opportunities to learn. But here is the thing, the difference between a decent computer science professional and a great one, is the desire to constantly learn new things. Computer science is always changing with technology and someone who is eager to learn is going to go further.
Most employers are not expecting a student out of college to have working experience, but if you have taken the initiative to learn new concepts and play around with them, you are already a tier above other students looking at that job. Telling an interviewer about your home lab and how you setup several websites/databases/networks/worked on open source projects, will really help.
Updated
Tony’s Answer
Kendrick, the beauty of IT is its affordability and accessibility. Start by purchasing an inexpensive computer. Next, load it up with Linux, programming languages, and database managers, all of which are available as free open-source software.
To learn more, take advantage of the numerous free courses available. However, if you're seeking a taste of real-world work experience, explore the open-source projects on Github. Here's how: download the code from any project, then go through the list of "issues". These issues are either bugs or areas needing improvement.
Your task is to modify your downloaded code to address these issues. This exercise will give you a glimpse into your potential future job. If you find it enjoyable, fantastic! If not, you've avoided wasting money on college tuition for a career path that isn't right for you.
Buy a cheap computer
Install Linux, programming languages, database managers
Review open source projects on Github
Take free online courses
To learn more, take advantage of the numerous free courses available. However, if you're seeking a taste of real-world work experience, explore the open-source projects on Github. Here's how: download the code from any project, then go through the list of "issues". These issues are either bugs or areas needing improvement.
Your task is to modify your downloaded code to address these issues. This exercise will give you a glimpse into your potential future job. If you find it enjoyable, fantastic! If not, you've avoided wasting money on college tuition for a career path that isn't right for you.
Tony recommends the following next steps: