Ask HN: How to get a high school internship?

18 points by trevcanhuman ↗ HN
Hello there. I am a high school senior and am interested in computer programming and linux system administration. Sometimes I like to check the internship section on hiring positions available in the monthly _Who's hiring_ post.

But every internship has certain specifications which usually include (at least) 4th semester of an undergraduate degree, etc. As you may imagine, I am yet to be in that position. I will be starting a CS Engineer Degree in the Fall of 2022, but I would be quite interested in gaining some experience from any Computer Science real workplace worlds.

I am looking for suggestions on how to start looking for these kinds of internships, from what I've been looking online I haven't really found anything relevant. I'd be open for any positions (physically) near Mexico City and/or virtually with international companies or even US! (I am a US citizen if that matters).

I am not (currently) living in the United States. I was born and raised there for four years but all my education has been in Mexico, near Mexico City.

If you'd like some tldr'd CV it's:

- Highschool PrepaTec Toluca - Tec de Monterrey. 2019-2022

- Local Robotics Highschool team. Known as TECBOT [0]. I currently lead the teaching of rookies for the programming area and have been on the team since 2019 (since the end of middle school).

- tecbot github: [4]

- Github: [1] trevcan.

- Self-hosted server website: [2]

- I have a blog @ `/blog`, and a

- git server @ [3]

- I'll be starting a CS engineering degree in the fall of 2022 at Tec de Monterrey Campus Toluca (a.k.a. ITESM, near Mexico City).

- English. Almost native. Latest score: C1 (made less than six months ago).

- Also speak native Spanish.

References:

[0] https://www.thebluealliance.com/team/3158

[1] https://github.com/trevcan

[2] https://trevcan.duckdns.org/

[3] https://git-trevcan.duckdns.org/

[4] https://github.com/tecbot3158

Thanks for your time.

20 comments

[ 3.1 ms ] story [ 57.5 ms ] thread
These internships requesting 4th semesters of college-how does your experience rank to them?

Maybe identify what you miss other than the semesters requirement and grind towards adding them. The semester thing may simply mean they want someone who has made it through the first two years of college. It may be a thing to avoid students likely to drop out of college or something like that. Your robotics experience may go some ways ameliorating that worry.

Otherwise, I’d say spend some time figuring out what’s coming in your college courses. If you have areas of weakness now is the time to go back and strengthen that knowledge without homework and quiz stressors.

Edit-also, lookup the syllabus for your coming courses. If you can ID which textbooks you’ll need and get them you can start reading them now. These are usually posted on professor pages or department pages.

Also, there are other pieces of paper you can get before two years from now. I’d bet you already know enough to pass the CompTIA A+ cert. check out the various certifications and consider sitting for them. They give you a readout of how you did on all the topics at the end regardless of pass/fail. This just might substitute for that college requirement. At worst, you’ll have more employment opportunities.
Look close to home first. I bet there are some small businesses near where you are now that need help - webdev, sysadmin, day-to-day IT kind of stuff. Is there a local chamber of commerce? Try that! Write them an email and tell them a bit about yourself. I'm sure they know someone who could use your help. I bet a small company near you would happily pay you an hourly rate to do sysadmin stuff for them.
I don't have anything specific for you, but I will tell you something I didn't understand when I was 18. the "requirements" on a job listing are not the real requirements. plenty of people will get those internships without fulfilling half of the "requirements".

when you see an interesting job, try to find the recruiter (or sometimes better, but harder to find, the actual hiring manager) and send them a brief message explaining why you're interested in the job and why you think you would do well. if nothing else, this will help you identify stuff to learn over the next few months.

Figure out why you want an internship first. If it's for money, then you just want a job. If it's to learn... we are now in a situation in the world where you don't need to do an internship to learn. Different companies do things in very different ways, so it's quite likely what you learn from a day to day process won't be especially helpful anyway.

Give yourself a project. Make it something very simple that people can see. A web app to do X. A mobile app to do Y. A chat bot to do Z. Whatever. Going through the entire process to get something live that people can use is a great experience.

You're very right. I still don't know what I want it for. Of course I'd like to learn, money is (fortunately) right now not a problem for me but I would like to get an actual job, since I've actually never had one.

Right now one of the projects I've been working on is a URL Shortening service and a simple app that returns your HTTP Headers.

I'm trying to write it in Plain C. It's certainly hard. I can imagine exactly how I'd do it in NodeJS (you can define the POST and get methods directly and stuff). But I definitely want to learn how to do it from a high-enough low-level language. The problems I'm having right now are not being able to process HTTP POST requests correctly. The code is here [0].

references

[0] https://github.com/trevcan/short

while it’s a good idea to understand how to use TCP socket directly. Trying to reinvent http request parsing is a waste of time.

You could do something simpler maybe. one thing i noticed from your code is it can only process one request at any given time. A real server would start a thread for each connexion.

Yep, I’ve read a little here and there on multi threading but haven’t actually tried it out. I’ll look more into it later in the day.

I’ll definitely try it out using some http library and see if that works with the url shortening and all.

If you want an internship it's going to be at a company which makes a product/service for the real world. So simulate that. You can learn the inner workings of C as a separate thing.

Build something which is live, ie not just a code base. You have AWS at your disposal. You have to write code, build it, deploy it, get a domain name, load balancing, get a cert, set up a database (maybe just use sqlite). There is a lot to building real things and the only way you can learn how to do it is building real things.

If you want to put a job at a company on your resume... start an LLC, give yourself a job title, build the product, launch the product and put it on linkedin.

A lot of this is messy, annoying, bang your head against the wall stuff. That's the real world.

Internships are also useful for college applications, and might get more clout than just a project (or open source community).
I emailed the CTO of a startup directly when I was in high school.

I was very respectful and humble in my request. Told him what I could offer and expressed that I wasn't in it "for a summer job". I really wanted to learn and just needed someone to give me a chance. In exchange I would write whatever code they needed.

Nice. You’ve just inspired me to write an email just about five minutes ago to a CEO.
I had programming internships for two summers in high school (after 11th grade and after graduating, before college). The first one was with a company my dad was laid off from but somehow they were still ok with taking me when I asked them. The second I emailed in response to a job post on CraigsList for a full time programmer.

This was in Lancaster, PA, a county of 500,000 centered around a city of 60k. So that is to say it was a very small metro area.

So in general, look local and respond to job ads hiring full time programmers. Local companies are always desperate for smart and ambitious folks, regardless of their level of education. If you're in a metro area of a city with at least 50k you'll likely be able to eventually find a company willing to bring you as an intern.

Good luck and don't get discouraged if people say no! Internships and full time jobs in tech are a numbers game.

If you're leading the programming group of a FIRST robotics team then you're more prepared for real-world development than a fourth semester CS student. Do anything you have to do to get an interview and be confident.
If you don’t need the money right now, getting into IOI /topcoder prelearning all material for CS engineering (buy/download and read the books that you will need to learn anyways) may speed up your university and improve your grades, and will make it easier to work while you are in the university.

Also ask some students there about the hardest subject in the first semester, as it may be the hardest semester for getting rid of students (for us it was calculus, but it was easy for me, as I amazing math classes in high school and went to math competitions before).

I wouldn’t do example projects, as it’s much harder to make an impact there than by getting good grades or working for a known company.

Just find a local company you think might be interesting and send an email asking

We get email from students/schools now and then, and we have them when not too busy

I wanted to reach out to you, but there doesn't seem to be any contact info on your blog.

Do you have an email or twitter?

Hello. Yes, I do have a contact page here: [0]

It is kinda hidden, sorry about that. It’s only linked on the ‘about’ page of the blog.

Email is preferable. Alternate email:

  heror0484 [at] protonmail [dot] com

References

[0] https://trevcan.duckdns.org/blog/contact.html

So i did internships starting in middle school, through college, and got a job from them after graduating. So i think i have a great ability to answer this.

My first internship was after middle school. It was unpaid and it was at a research lab that my fathers friend worked at. It was in MechE work. Did that for a summer.

Then, i told someone who ran the lab i wanted to go into medical sciences, and he called up some one at a sister lab who did physiology research. I did that paid for a summer. The next summer i went back, and helped them with data science work where i realized i wanted to do CS stuff. They hired me for a third summer to work on data acquisition applications and related stuff. I continued that until college.

During my free time, i was writing my own smart home hub, and i had it on my resume. Showed that to a company at career fair, they hired me on the spot (or almost).

TLDR: You really need a network to get it without any skill or validation. Projects can help you show initiative and basic skill.