10

Hello, I'm a teenager and I want to become a Software Developer/Software Engineer/Product Engineer, I want to know how to start, what do I need to start learning, I have some knowledge of Javascript and I don't know if should learning Python or Java and where to learn it, please if somebody can answer those questions it would be great help and I would really appreciate it.

PS: I think I may need a mentor, if someone wants to help me my Discord is: patrik11

Comments
  • 1
    @crapped thank you very much!
  • 7
    Be careful with Java, starting janauary 2019 Oracle will charge for using Java in Enterprise.
    Usually I recommend at least one scripting language, one object oriented language and one procedural language in tool box .
  • 1
  • 9
    Learn some C. Not to become an expert or anything, but understanding pointers and such will greatly improve your understanding of how other languages work under the hood.
  • 7
    @catadoxa Yes, C or C++ are both good options.

    Python is where a lot of people start, it's where I started.

    I'm assuming you don't know OOP concepts, so you'll need to start at the basics: functions, methods, Boolean logic, enumerators, arrays.

    Java is not a language I'd recommend for beginners. It's very syntax heavy and a lot of it's design is built with OOP in mind from the start. If you don't care for Python(I didn't when learning it) then I'd recommend C or C++. I only started becoming a competent programmer once I had worked with C++ for a couple years.
  • 2
    Personally I'd recommend you get into Python first up, it gives a very loose and easy area to get into things but given you do already have some experience maybe there isn't any need (plus python doesn't have a huge array of practical (common) applications).

    Maybe go with PHP especially because you already have experience with JavaScript. It's very useful and pretty lenient for new developers. It's very loose so it gives you room.

    At the very beginning W3 is a good resource and then once you get a bit of a grasp the official PHP documentation is awesome.

    Once you've got more experience go for something like Java or C#.
  • 1
    @qwerty77asdf @patrik11 NB:

    If you decide to go with PHP here are links to the sites I mentioned:

    W3Schools: https://www.w3schools.com/php/

    PHP Docs: http://php.net

    If you wanted to keep going with PHP I'd recommend eventually learning how to use MySQL. It's the tool that truly takes a website online.
  • 1
  • 1
    U suggest think of what u want to learn. There are enterprises. Game. Security. Graphic. Ai. Database. As each have their own environment and set of language. This is also a good reason go to college as u learn also all of them a bit on everything and know what they do, how it feel.
  • 1
    Python is easy to learn and has a lot of room for growth (it's being actively developed, is the most used language for AI and data science now, can also do web apps, image processing, and best of all automation!).

    Everyone hates on JS but it's the language of the modern web and it is crazy versatile with low to no barriers to entry. There are some quirks and downsides to it but you can wrote anything from a mobile app to a web app to a desktop app to VR/AR games in it. Also a great tool for hackathons which you will likely be frequenting in highschool/college.

    You'll learn Java and C in college for sure, and possibly Python.
  • 0
    @RantSomeWhere I agree in general but I think if you learn C well enough to understand it learning C++ is unnecesary if you aren't going to use it. I don't think it has much conceptually that you wouldn't learn from C plus a higher level language.
  • 2
    @RantSomeWhere And it's why Python was a terrible language to tach me programming. I ended up going all the way back to Assembly -> C++ -> C# -> Currently Java + JavaScript.

    @S-Homles-MD Start 'em off right with punch cards. They were still teaching this stuff well into the late 80's when my dad was in school.
  • 3
    @S-Homles-MD @starrynights89 Well I mean if you REALLY want to understand how computer programming means, you should probably actually start with an abacus.
  • 2
    @catadoxa The lowest I've ever gone is assembly on an Intel 8080 emulator for a college class. That was the first and only time I ever wanted to work with assembly. 😣

    Doing binary by hand was fun though. But if I had to seriously do it I'd work in hexadecimals. Screw straight binary.
  • 3
    @patrik11 well I have a slightly different recommendation.

    There's a legendary book called the Structure and Interpretation of Computer Programs (also called the Wizard Book), which was used by MIT to teach introductory programming for many years (they use Python now, make of that what you will). This book teaches you about programming in Scheme from a very interesting, academic perspective. You'll learn about programming patterns, symbolic computation, metaprogramming, making simple interpreters and compilers, programs as data, tons of patterns, and lots of other cool stuff.

    Yes, you don't get to make cool websites and apps and all but it teaches you the fundamentals of programming itself. Coupled with C to learn pointers, it makes for a very good base to branch off into anything programming related.

    The book is available for free on its website.
  • 0
    I, myself am a teen that is new at this... Have like a year long of experience in the workspace...

    I started off with Java and from that bit of knowledge I acquired through learning it i managed to apply those programming fundamentals in pretty much every language I learnt there after.
    I am not saying that you should start with Java but I think it can serve as a concrete base language and it's construction is pretty much what almost every language follows...
  • 2
    @RememberMe I fucking love how much stuff MIT makes free. Before I decided to go back to school and get a second BS in CS I did youtube university for a bit to make sure I really liked CS I took some of their free stuff. And I still do for that matter.
  • 3
    @SMtengwana I actually started with Java too, and I enjoyed it. I haven't written in it for years though. Now that I think of it being able to do stuff quickly was one of the draws of working with Java, and as much as I reccommend C to people maybe it is better to start with a higher level language just so you get a tase of what you can do when you know how to tell silicon to do stuff using tiny tiny tiny lightning?

    ETA: haha apparently I think I'm poetic when I'm high? tiny tiny lightning you pretentious asshole ,,,
  • 0
    Python is shit. You should definitely learn Java! It offers much more possibilities!
  • 0
    @catadoxa MIT's open education resources are a gift to humanity, seriously.
  • 0
    @crapped java is lord, all hail java
  • 0
    @starrynights89 I started with java
  • 0
    @Skayo that's a bit of a hollow statement, given that both are Turing complete, and both have gigantic ecosystems.
  • 0
    I’d say Java over Python, C# over Java - learn C#.

    In python, types are quite unclear, and I think it’s a good idea to start learning with strict types. C# is widely used all over the industry. I don’t know how it is in many other countries, but in Denmark (where I’m from), nearly every single IT company uses C# for their backend.
  • 0
    @RememberMe thank you thats great!
  • 3
    @RememberMe @snaz @redpanda101 @Skayo @catadoxa @not-sure @SMtengwana @RantSomeWhere @S-Homles-MD @starrynights89 @woodworks @goamk thank you all for your help!
Add Comment