+1 for C# here. It's basically open source now, is OO, isn't **** like Java. Can be use for desktop, web and mobile apps. .NET Core is the future and between that and mono and it will basically run everyone you'd need it to.
Visual Studio pretty much blows away every "open source" IDE. (JetBrains' IDE's are very close though).
In addition to that a must would be a solid understanding of RDBMS and SQL. Learn ES6 too because if you're just starting out you may as well start with ES6 and let it transpile where it needs to.
Remember at a school level people need to learn enough "life skills" to get by. The above will pretty much let you achieve much of what you want and anyone who really cares about mem_alloc can go do that on their own time or even later in life.
Arduino type dev is a good way to get into C (without thinking too much about C) and a good understanding of electronics, clock cycles, some memory management, etc. That's would probably be quite fun in school.
Visual Studio pretty much blows away every "open source" IDE. (JetBrains' IDE's are very close though).
In addition to that a must would be a solid understanding of RDBMS and SQL. Learn ES6 too because if you're just starting out you may as well start with ES6 and let it transpile where it needs to.
Remember at a school level people need to learn enough "life skills" to get by. The above will pretty much let you achieve much of what you want and anyone who really cares about mem_alloc can go do that on their own time or even later in life.
Arduino type dev is a good way to get into C (without thinking too much about C) and a good understanding of electronics, clock cycles, some memory management, etc. That's would probably be quite fun in school.