what kind of programming language would you recommend for a computer engineer thats also a freshmen in high school?
If you think you are interested in Computer Science and programming, the quintessential course that you NEED to view lecture materials for is Harvard's CS50. All of the lectures are available for anyone to view for free online (enrolled or not).
Here is the link to the 1st one
There are 12 lectures in total. In order to view them all just replace the 1 at the end with a 2...then 3...then 4 etc. until you reach the number 12.
These are absolutely fantastic videos.
Casey recommends the following next steps:
The programming language eco system is exploding. Some very generic and some provide great way to solve a specific domain of problems. On high level, they are all about syntactic sugar to model problems and how its syntax and constructs help solve. I have gone through low level Assembly level to 4th gen (such as SQL) during school and career. At the end, they all are implemented (under the hood) in C/C++ (or other low level procedural language, that comes close to machine language) to convert to machine specific assembly lang (which uses native "instruction set" of the associated CPU).
Srinivas recommends the following next steps:
Programming is an art. I strongly recommend start reading 'Let us C' book written by Yashwant Kanetkar. Once you get an idea of what magic few lines of code can do, you'll start developing immense interest in C.
After practicing syntax/loops/variables/functions/data structures/few beginner level codes, you can switch to learn Python. I must say - Python is the future. Also, you don't need to invest same time learning Python language as you spent in learning C, because 80% concepts are similar except OOP (Object Oriented Programming).
Trust me, all programming languages are very much similar to each other. Logic remains same, only syntax changes.
Assuming no prior experience in programming, I'd suggest learning with something like Python (e.g. following LearnPythonTheHardWay).
If you have access to someone who knows what they're doing to bounce questions off of, maybe Lisp (scheme) + SICP: https://mitpress.mit.edu/sites/default/files/sicp/index.html
If you have access to ap comp sci course later on, I think they use Java (though I really don't know), so that might work as well.
If you're dead set on comp E instead of just comp sci, then you'll eventually want to knuckle down and learn C, the most trigger happy of all foot-guns available.
The main thing to learn is to have fun solving problems. My advice: start with making a choose your own adventure text game. As you learn more elements of programming you can have this overarching project that you refine and work on. Of course, there are other things you could write, I’m just thinking of what worked for me back in my youth.
Best of luck.
If what you want is to make machines move or hardware talk to each other, you need to get "closer to the machine" by writing code that knows about devices and such. I would learn Python or C in this case. You'll want to dive into two areas:
1) Get to know machines. Like a Raspberry Pi for example. That's a bit of hardware that has a CPU with memory (RAM), networking ports, pins to control servos and other hardware, and pluggable interfaces. Writing code on that machine uses Python.
1b) As you think about memory and how the CPU runs your instructions (compiled from code), you'll get to know that there's some pretty important limitations around space, time, and power. From here you might want to learn C or Java.
1c) C lets you get really close to the inner workings of the computer without worrying about machine code instructions. Java is like a step up from that where the programming language (and its "runtime") handle icky things like memory management and object lifecycles.
2) There's a -completely- different branch of computer engineering that's almost entirely software that deals with writing applications and processing data. This is the realm of like artificial intelligence (AI) and machine learning (ML), web apps, web design, user experience, and mobile apps.
2a) If you go AI/ML and want to crunch data for big problems, find patterns, and do predictive stuff then Python is your friend. Lots of libraries and help there. Python is also fairly easy to read/write.
You have to learn how languages solve common problems (object orientation, encapsulation, concurrency, memory manage, etc) and use them when fit to the issue you are solving.
Those languages come to my mind because they are very used in the industry and have a lot of resources to learn and active community to reach out.
Best of luck!
For beginner, I would definitely recommend Python. It is very easy to pick up and allows you to build something really quick. And you don't have to deal with compilation stuff for Java or C++. Besides, Python is also a very versatile language that is being used in areas of programming, web site, data process, data analysis, machine learning and computer vision, etc. The list is still getting longer and longer. Once you get into programming, you can pick another language like Java or C++ to dive deeper into how computer program works. There will be advanced topics like memory allocation stuff but you don't have to deal with that in Python at all.
At last but not least, you will hear a lot of people saying: Life is short, you need Python.
The language of choice depends largely on the field you are working in.
As a developer in networking domain, C and C++ are largely popular among organisations.
In Machine Learning development, Python is number one.
For testing framework, Python is the language most organisations are either working with or switching to.
While there are a ton of languages out there today (and more coming out every day), I would encourage you to look at a structures object-oriented language like Java. This will give you a great foundation on which to build, and will also be broad enough to give you a working knowledge of how to structure programs regardless of language.
After that, I would encourage you to look at application focused languages (like ruby, python, or node.js).
Best of luck
That said, I'm just learning Python though I've been programming for 35 years. (Yes, I'm that old...grew up coding on punch cards.)
It has easy-to-learn syntax so that you wouldn't have to remember to do certain 'tedious' things after writing each line of code (like remembering to hit a ; after each line in C/C++).
However, once you are comfortable with some common programming tools (loops, if/else statements, etc) I would recommend you actually check out a little bit of C and C++, as those are courses you will take if you are becoming a Computer Engineer. Courses like Embedded Systems (which are incredibly interesting to learn about) use these languages often, and it can also give you some appreciation to what working with low-level programming language feels like.
1. C/C++ - Was my first language, helped in competitive programming world. C++ helped in understanding OOPS, the Standard template library will help you understand different data structures.
3. Python - easiest to learn and code. Use amazing libraries like panadas and import several extrenal packages to create wonderful applications involving AI, data analysis, machine learning.
Java - very commonly used in big firms, good choice if you want to have career in Web and android dev.
Hope it was helpful.
I've worked in several large companies as a consultant to help customers and partners build applications that interact with our software products. Enterprise software companies typically offer access to their services through Software Development Kits (SDKs). It has been interesting watching how the technology/language trends have evolved over time.
For beginners, I would recommend Python. It has a simple syntax but can be an extremely powerful language to use. It works well for demonstrating concepts and there are an abundance of books/tutorials available.
Different People find different programming language interesting. Generally, high level language is easier to understand for freshmen. For example, C is more readable than Assembly. Both of them are very useful. Linux kernel is written with C and Assembly. C sync is very clean and structured, which can help freshmen develop a good practice with programming.
Choosing a first language will depend on what kind of projects you want to work on, who you want to work for, or how easy you want it to be.
During the time of AI and automation, Python is always recommended if you’re looking for an easy and even fun programming language to learn first.
It is ideal for web development, GUI and software development.
Now as you might know there are many other programming languages to learn based on your interest.
To become a master developer, consider C or C#.
If you want to pick the job profiles bases on mobile apps, go for Java.
You asked a very important question. The answer would vary based upon the career interests of the individual as computer engineers are used in a great variety of applications. Here are some steps that will allow you to decide which would be best for you as an individual and be most helpful in your education/career journey. Based upon my many years in Human Resources and College Recruiting, these steps are very important in ending up in career/job that is fulfilling and satisfying. I have run into too many graduates who skipped these steps only to end up in a career area that did not fit. Selecting a career area is like buying a pair of shoes. One has to be sure that the fit and comfort level are correct before making a commitment.
Ken recommends the following next steps: