As a high school student, what should I do to get an internship relating to computer science?
I've looked around the internet a bit but still have some questions, it seems like it is hard but somewhat feasible for a high schooler to land an internship. I would say I know python well and in school I am taking AP computer science where I am learning java. But my questions are what should I focus on to make me a more appealing candidate, work on projects? Do hackathons? Should I keep the scope of what I work on big or try to get really good at working with a specific technology? #technology #computer-science #internship #computer-software
A couple things you should have as far as networking and that are actually relevant to the career side of programming.
Networking: Get a Linkedin profile, put your experience (if no experience then put a summary of what you're trying to accomplish), do classes that give badges to put on your LInkeding (linkedin classes sometimes has free programming courses, Coursera has courses with Google you can do and it looks good), etc.
Career highlights: Have a github account and be active. Even if they're just modules, learn how to make a great Readme/Markdown document, how to deploy a static page to github pages (easiest with HTML or something like HuGo markdown pages), etc. Learn how to do branches in a repo, pull, push, etc.
Aaron recommends the following next steps:
early experience in computer science, where your success is determined by your skills is a great idea! Couple of things you could undertake:
- hackathons is an amazing way to grow your skills and work with many different people. Many of them will have a mentor or coach that are a great source of knowledge
- volunteering/ teaching programming - there are many programming clubs teaching Python/ other popular languages to kids or less privileged groups. You could volunteer as trainer - it will be a testimony to you soft skills (hard skills only are not enough) and you could really change someone's life. Also teaching other is a great way to increase your grasp of subject. (you know your subject well enough if you can explain it to a child)
- volunteering/ helping NGO - you could check out various ngo portals if an organization is in need IT/ programming support. I see a lot of opportunities for webdevelopers (PHP, html, CSS) but it's not limited to it
- complete courses with capstones - Courseara offers a wide range of courses in programming, data science and statistics. Many of them require a capstone project where you apply your skills to a real-life problem. It can be a good step towards building your portfolio
- ask around - ask you parents to help you with search. Do other families members or their acquaintances have their own business? Are they facing IT-related challenges you can help solving?
- directly ask the companies you find interesting - you will be able to find contact information in their webpages. Send them a mail with CV and description of what you can do and how you'd like to contribute. The worst thing that can happen is that they so no - it's worth trying!
Hope it helps and fingers crossed!
It's good that you are trying to prepare well ahead of time. As per my experience, learn your basics well. It will help you not only clear the interviews now but in the future as well. Any organization taking in interns are prepared to provide requisite training. So, generally what we check for, is how well you know the basics. The projects and hackathons are a definite plus. Not only do those add to your resume, but those are also avenues to gather experience and much-needed exposure. A lot of organizations follow open-source projects and hackathons. So, you can get noticed there.
So, overall, your thought process is right. Get the concepts really clear. Do some projects or hackathons to add to your resume and you should be good.
For knowledge, I would suggest getting overall knowledge with specialization in a field you like. Overall knowledge will keep your options well. But if you are passionate about something, getting specialized knowledge in that will help you get options in that field.
One point though. I have seen many say, they know Python or Java or another such language. For me, knowing the syntax of a language is not important. Knowing the programming basics and logic are more important. I am good if you can write a very good flow-chart or pseudo code for a challenging problem. If you can do that, you can easily convert that into any programming syntax. The basic logic does not change much.
So, if I am interviewing two candidates and the first one has a solid understanding of logic and basics but is not a master of python and the second one knows three languages but lacks the foundational knowledge, I will choose the first candidate over the second.
It's very easy to learn a new language and syntax but not easy to build the foundation.
Hope this helps.
Highlight your key high school experience including course load, key assignments and GPA. But that's just the start.
Why are you differentiated and more suited than others? What skillsets do you have? What coding projects have you done? Make sure you provide solid detail on all of this.
Have you contributed to open source projects? Or could you? Have you built your own website or application that you could publish? Or maybe a Youtube video walking the user through an overview of the code and showing how it works.
Interns should have: 1) drive, 2) communication skills, 3) positive attitude, 4) aptitude and 5) relevant experience/skills. Let's assume you have the experience/skills like most of your peers as you compete for these opportunities... how will you prove the first 4? Do you have references? Have you practiced doing interviews (i.e. with your parents, teachers or friends)?
Going into this... for sure, be great at the computer and coding aspects... that can't be trivialized... but don't lose site of the fact that you'll be going against dozens of peers with the same or better skills. You must prove that your are different, unique and more deserving. Are there other complementary avenues you can show in addition to your hacking skills. Do you contribute to your community in some key way, are you a leader in a sport/church/school/after-school/etc. group, is there is there a clear vision of where you think you are headed in life (i.e. goals), are there key leaders in IT/CS/business/science that you have read about and speak to....?
Note, you can find internships online at various employers or even through LinkedIn or Indeed.com. Admittedly, it does help to know a family member, friend of the family or close neighbor that might be hiring for interns. Internships are "gold" on a resume, so any leg up you can find will be useful.
Good luck, practice practice practice on the interview itself, and show them how unique you are!
With that in mind, you'll start to gravitate towards projects that highlight and interests your strengths as a potential candidate for these companies. That's what they are looking for! While you might not be able to find an internship nearby that's looking for what you are interested in, there's plenty of online stuff in this post COVID time.
As far as I know, there are large Technology corporation may recruit intern from time to time. They would post it on the websites. You can keep an eye on it. They may also recruit it via the schools career office. However, those opportunities may be more suitable for college students.
On the other hand, if there is any Technology corporate you would like to work as an intern, you can also send your cv to them proactively. They may contact you directly if there is any position suitable to you.
Other than intern opportunities, if you are interested on coding, you can practise your coding skill from time to time. Some smaller companies may look for freelance developer to build small scale application. You can also take a trial.
Hope this helps! Good Luck!
So go through this link below and understand what it is stated there. For example, they give you a list of common data structures, google that list and understand what each one of them are. They give you 4 principles of OOP, look those up and understand what they are. They give you common IDE's (Integrated Development Environment), look those up on YT and just be familiar with what they are (ex: java - netbeans, C# - visual studio, etc. )
To get internship, usually, you go through your school that interacts with companies. The school get you a list of companies where you can apply for internships.
Companies are working with universities/college to get student and that's how things happen. Of course, you can always apply by yourself to these companies and hope to be interviewed and hired as an intern but being part of a school that has worked with a given company is usually a thing that helps your resume to be considered.
Then, recruiters looks at your experience in the given skills they consider be the basic requirements for the internship. If that is still fitting their needs, they will interview you and check your technical skill levels and your behavioral skills to check if you are a fit to the company.
Keep in mind that many companies look at interns with a long term goal to hire that person if the intern shows great promises for the future. For high school, it might be harder because they will lack two points:
- where you will graduate from? you haven't chosen your universities/college yet.
- Can they hire you? it's too far in the future to have such a vision
That does not mean you can't find internships, but if you do not get help from school or a club, it might be harder.
To find such internships by yourself, you could:
- use a professional social web site like this one and/or LinkedIn and ask for internship
- go to job search websites and check for internship offers and apply to those that are relevant to you.
- visit companies websites that you know do computer science and seek for internships. For example, Dell's website for internship is https://jobs.dell.com/internships . It lists all the openings we have for interns, when ...
Doing hackatons and other programming events will help but again, you might get behind the students that graduated from high school already. A good way to "hide" this would be online events but I am not so familiar about them.
Hope that gives you some steps and I hope I did not discourage you from searching/applying.
I recommend making some cool apps that you enjoy working on and be sure to host your code on GitHub because that is something you'll want to get familiar with. Pick a topic that you're interested in working on like maybe making a gaming website and try to utilize APIs. Python is used a lot for automation so that could be a good starting place. I also recommend making a LinkedIn Profile and start growing your network!
How to make an AWESOME LinkedIn Profile: https://www.youtube.com/watch?v=FYLbJM58ssw
Resume tips: https://www.freecodecamp.org/news/writing-a-killer-software-engineering-resume-b11c91ef699d/
Python Automation Tutorial – How to Automate Tasks for Beginners [Full Course]
Git and GitHub for Beginners - Crash Course: https://www.youtube.com/watch?v=RGOj5yH7evk
Spring Boot CRUD Web Application with Thymeleaf, Spring MVC, Spring Data JPA, Hibernate, MySQL: https://www.youtube.com/watch?v=_5sAmaRJd2c