5 ms·
16-year-old Looking For Guidance
Hello, I'm a 16-year-old seeking guidance for the next steps in my software journey. I've completed 100 days of coding on Replit and have undertaken several HTML, CSS, PY and JS courses and tutorials. My goal is to enhance my programming skills and eventually secure an internship. While I still am not sure, I am interested in ML or AI engineering but am aware that is hard and might be too hard for my skill level. Currently, I'm exploring ways to further improve, such as engaging in projects or any other suggestions you may have. If you have any project ideas, it would be helpful. Any other advice would be much appreciated.
- haltist 3y agoMost things are not hard if you spend the time and effort to learn. I recommend Francois Chollet's book on AI. It has good reviews so it will help you learn the tools, techniques, and concepts in AI and ML. If you can't afford to buy the book then there are online libraries like Anna's archive which should help you get a copy and then buy the book once you have a job and can afford to spend money on books.
- SwayamShrimali 3y agoGot it, I'll get the book. I did not know there were up-to-date books because of recent years, guess I was wrong ¯\_(ツ)_/¯.
- elliewithcolor 3y agoFirst of all: Awesome! Most people do not try to understand the basics and jump right in to specific frameworks. Understanding the basics will help you in the long run to adapt to different things. One thing Im personally missed out (now 27; started at 12 with web stuff) is writing. Not only writing blog articles or documentation, but writing for the sake of documenting small hacks or bigger concepts. So that would be one tip I personally would loved to get. About projects: - either do things like features for small projects (e.g. dark mode for something like altcha.org) - try to fix some bugs - or try to recreate small projects based on a framework or vanilla for the sake of learning stuff. As a tip for learning more things etc. in the web dev space -> Look into accessibility. Its a huge and interesting topic. Also "that is hard and might be too hard for my skill level." -> Do it. Get started with something "easy", read papers, do tutorials, write stuff about what you learned. You wont learn if you wont try :D In general -> Keep on learning. Don´t waste time on chasing the next framework and ask. Asking questions can be interpreted as being annoying. But if you try to understand different view points, different tech etc. you will end up talking with people that will bring you forward.
- elliewithcolor 3y agoOhhh and before I forget it -> one skill that helped me a lot -> Hosting my own stuff securely on bare servers without docker for example. It helped to understand security concepts, how much resources a website really needs and what I even need to host a website. It´s nothing against docker, but keeping a bare web server secure and then introducing databases etc. with self build images is nice.
- verdverm 3y agoData structures and algorithms are important, there are some good college lectures recordings on YouTube, MIT's is quite good iirc. The recorded lecture series as a playlist are under rated and available for many topics. For AI, there is lots of content these days. The directions you take depends on if you want to use AI or develop AI. Learning how they work a the theory level will help you use them better and know what kind to use for different situations. As others have said, you are well ahead of the curve. Keep putting in the effort and building! For projects, pick something ambitious that you are very interested in. It should require things you don't know how to do, but be a passion so you can cruise through the hard parts. This will give directions for what to learn and leverage next too. Also think about breadth vs depth. There is a saying "be T shaped" which is really a visual for this idea. I prefer being pi shaped, which means you have two deep expertises, something to aim for as you continue to grow in your career.
- SwayamShrimali 3y agoThanks for the tips! I'll definitely look into the MIT lectures on YouTube. Your thoughts on AI and project choice make sense, and I'll aim for a good balance. Appreciate the encouragement.
- qup 3y agoBuild something. Just build something you want. Or, find something you think you can build that already exists, and clone it. That's kind-of how web stuff gets built anyway; I've built many projects that were just a PSD file that looked like a website, and I had to build it from that one design file. Just put in some reps. GL.
- deleted 3y ago[deleted]
- 2143 3y agoA few resources which you may want to check out, in roughly increasing order of difficulty: - Free Code Camp: https://www.freecodecamp.org/ https://www.freecodecamp.org/ - CS50: https://cs50.harvard.edu/x/2023/ https://cs50.harvard.edu/x/2023/ - How to Design Programs (HTDP): https://htdp.org/ https://htdp.org/ - Nand2Tetris: https://www.nand2tetris.org/ https://www.nand2tetris.org/ These are geared towards making you a better programmer in general, though it won't necessarily bring you closer to an AI/ML career. Also, math is pretty important if you want to get into AI and similar things. Even otherwise math is important; don't listen to people who say you can get by without the math! So, try to get a head start on probability, calculus, linear algebra etc. Good luck! Gosh, I'm embarrassed about what I was up to when I was 16.
- SwayamShrimali 3y agolol, thank you for the fantastic resources and insightful advice! I appreciate your time and encouragement. Ill take a look at all the links, currently i am in grade 10 so i cannot take any courses yet but i might take some outside of school
- mikewarot 3y agoWhile diving into the nitty-gritty of exactly how gradient descent and backpropagation work might (and only might) be beyond you, it's a temporary thing. You can learn it all, if you want, at some point. Thanks to TensorFlow, and Keras, etc.. you can just use the work of others as you learn AI and ML, just as many have no idea how a car engine works, or how exactly dynamic RAM in their computers works. There are many practical aspects to ML/AI that you can learn straight away, like how to partition up your training data into training, validation, and test datasets to keep things honest, and avoid overfitting. Stay curious, and dig in anywhere it seems interesting. More knowledge is generally a good thing. Good luck
- SwayamShrimali 3y agoThanks a bunch! Your support means a lot. I'll take a look at TensorFlow and Keras.
- mejutoco 3y agoAny will do, so I do not want to nitpick too much. I want to point out that most people are using pytorch these days. If you use the book that uses Keras it is also fine, but I would not start with Tensorflow today.
- throwaway09799 3y agoLearning soft skills should be better use of your time, people who are changing the world have less to do with programming.
- GianFabien 3y agoThere's nothing wrong with focusing on technical skills. But you have to remember you will always be implementing somebody else's ideas / vision. Technical skills plus domain specific knowledge is how you increase your value, perhaps even building a startup that solves a worthwhile problem.
- codingdave 3y agoThere is nothing wrong with doing something you enjoy without changing the world. Especially at 16.
- AnimalMuppet 3y agoWell, how about putting it this way: People matter too. It's easy (especially at 16) to think that, if I can code, I'm on the path to success. And, in a way, you are. But people really matter, and they take a different skill set than programming does. Put at least some focus on getting better at dealing with people. But if software is your "native land", it's fine for you to be more comfortable there. Really. It's fine! If you enjoy code more than people, it's OK to like what you like. But learn to speak "people" at least as a second language, even if you're not a native. But that's not the advice that was requested. Swayam didn't ask for life advice. So to try to get back on topic: Do whatever interests you that will push you a little. You want to go towards AI/ML, but you think it may be beyond you? Well, frankly, it's beyond me too, and I'm your age with the digits backwards (I'm 61). But I could learn it. You can learn it, too, but not in one day. What can you do that is in that direction, that you would find interesting and challenging? (Or is that what you are asking us?) Maybe you could implement a small back-propagation system. It doesn't have to be either efficient or scalable; build a small one, by hand, and play with it to really learn what's going on.
- SwayamShrimali 3y ago
- austin-cheney 3y agoNext step: write an application. I mean a complete original application with documentation. It does not have to be big but it should be something complete that others can use. That will teach basics of code organization and writing technique, which is so much more than just squeezing out a few code samples. As for education don’t bother with a computer science bachelors degree unless you are dead set about getting a masters, which I highly recommend. Most of the developers I have worked with through my career who were educated through a CS bachelor program were savagely incompetent compared to developers who were either self taught or had a graduate degree.
- iteria 3y agoThis is absolutely wrong advice in this climate. Self-taught people have a massive survivor's bias. You _can_ make it without a degree, but having a degree greatly increases your chances especially at entry level. College is also not just about the paper, but the connections. I worked closely with a nationally renown robotistist and she gave me a recommendation for grad school if I wanted it (I did not. So burnt out by the time I got here). Does any self-taught person get to really do work with actual robotics stuff? I was exposed to so many more disciplines and ideas to get a sense of what I wanted to do along with make connections that help me in my career to this day over a decade later. I've had recruiters and interviewers tell me straight out that I got first pass because of the college I walked out of. This still happens after a decade. People say it's a hard market to get a job right now? I haven't noticed. Me and all my college friends snagged a new job in a month. I've never had a hard time getting a job. Ever. That's the power of a degree. It gets you pass HR filters and when there's a tie, people pick you first to try and that's powerful and compounds as time goes on. Being self taught is great when times are good, but it's very hard to get that next job when times are bad. I'd never recommend a 16 year old skip college. A piece of paper from a ho-hum state university still allows you into the stack of places with stupid degree filters.
- austin-cheney 3y ago> This is absolutely wrong advice in this climate. Self-taught people have a massive survivor's bias. You _can_ make it without a degree, but having a degree greatly increases your chances especially at entry level. That is true. It's also true irrespective of job and industry, but that isn't the point. If you want the greatest possible career mobility then earn that CS bachelor's degree and be a beginner developer forever who only follows trends. I doubt though, that is the advise they were looking for. If you want to make more money and have a career with real growth then absolutely do not do this. I am speaking from experience. Their best bet at a real career with any real decision input is to get a graduate degree in CS or be self-taught with a different unrelated bachelor's degree that teaches communication skills. The best way to differentiate from other beginner developers is some combination of ability to write original software and to write with natural language. Its astonishingly staggering how badly most CS bachelors perform at these even well into their careers.
- a-saleh 3y agoFind yourself friends and a project. When I was your age, best thing I managed to do was to help a friend create a small graphing-calculator in Java? It was fun, we learned a ton and as he already was doing odd-jobs for his dad with Java EE I could have him both as a peer and a mentor. And these days it is even simpler. There are cool projects on github! Some are even friendly to newcommers! You could dabble with videogames and do a jam on itch.io. If you are aiming for an internship, you could research the sorts of companies you like, and find if they have cool projects/technologies you want to learn. I.e. I got internship at RedHat over 10 years ago and as I was already i.e. using Fedora and writing for a local linux website, we did click with the interviewer quite well.
- SwayamShrimali 3y agoYea, I'll try to look for some projects on git, I just feel like I might not have the skills to help people as I might mess it up XD.
- a-saleh 3y agoYou can always start with something simple, and maybe just fork it for your own use. Do a little improvement here and there ...
- p0d 3y agoI made a simple web booking system 15 years ago and people are still using it. I had very little idea of what I was doing. As others have said, make something and enjoy the work of your hands :-)
- SwayamShrimali 3y agogot it! also 15 years and people are still using it? wow!
- p0d 3y agoThe learning for me has been to solve existing problems. Maybe create something that solves a problem for yourself or someone in your family? You will be surprised how happy the average person is when you make something that makes their life easier.
- subtra3t 3y agoI assume from your username that you are from India, in which case I'd recommend you to start finishing all these courses/books before 11th strikes. If you plan to take A-Levels/IBDP you'll have at least some free time to work on projects. However if you end up studying for NEET/JEE you'll have absolutely no time at all to do anything fun. Also instead of doing many courses/tutorials try doing projects. Not your generic social media base or restaurant ordering service UI, something that interests you and you want to work on. That said, CS50x is a great course that doesn't require an extemely large time investment. I see that you wish to go into AI/ML. Watch 3blue1brown's series on linear algebra, calculus, and deep learning. Learn to love math. You will need a lot of it.
- SwayamShrimali 3y agoI was born in India but my whole life since I was 3 has been in Canada and just recently I moved to Palo Alto in California. Ill watch 3blue1browns series as well
- frontman1988 3y agoJust go and intern at any startup that takes you. That's how you will learn the most.
- SwayamShrimali 3y agoOk, so in summary(just if anyone else needs anything from this), these are the links: 1) Emphasize completing courses/books before 11th grade. 2) Focus on projects rather than numerous courses. 3) Watch 3blue1brown's series on linear algebra, calculus, and deep learning. 4) Recommended resources include Free Code Camp, CS50, How to Design Programs, and Nand2Tetris. 5) Stress the importance of mathematics in AI/ML and suggest studying probability, calculus, and linear algebra. 6) Encourage the individual to start with simple projects and gradually tackle more ambitious ones. 7) Suggest writing a complete, original application with documentation to understand code organization. 8) Advise joining projects, looking for internships, and exploring open-source contributions. 9) Recommend Francois Chollet's book on AI and learning TensorFlow and Keras. 10)Encourage learning practical aspects of ML/AI, such as data partitioning and avoiding overfitting. 11)Suggest building something personally interesting or cloning an existing project. 12)Emphasize the importance of soft skills and understanding the human side of technology.
- SwayamShrimali 3y agonumber one does not apply to me because I'm in the USA/CA, but included just incase someone from Inda views: 1) Emphasize completing courses/books before 11th grade.
- hnthrowaway0315 3y agoI'd say in general getting into the best university you can if a good idea. CMU/MIT/Berkeley for example.
- SwayamShrimali 3y agoyup,thats my goal. Currently, I want to try to get into Standford as my top pick as I live close to it.
- hnthrowaway0315 3y agoGood luck with it!
- tomatoduck 3y agohttps://cs144.github.io/ https://cs144.github.io/ https://www.cs.cmu.edu/~213/ https://www.cs.cmu.edu/~213/ https://15445.courses.cs.cmu.edu/fall2023/ https://15445.courses.cs.cmu.edu/fall2023/ https://pdos.csail.mit.edu/6.824/ https://pdos.csail.mit.edu/6.824/ https://pdos.csail.mit.edu/6.828/2023/ https://pdos.csail.mit.edu/6.828/2023/ https://csdiy.wiki/en/ https://csdiy.wiki/en/ Many top universities in the US publish their courses online for free. Students from other countries who do not have a good learning experience in their universities can “create their own CS degree” by taking these courses. However, even though you can learn almost everything that you would learn in a university from these courses, what really matters are your networking and your school name on your resume when you are looking for internships.
- SwayamShrimali 3y agoSounds good, any in particular you recommend?