what kind of programming language would you recommend for a computer engineer thats also a freshmen in high school?
were are doing a project at school about our carrier #technology #computer-science #software-engineering #computer-engineering #programming #software-development #computer-programming #python #java #C #javascript
40 answers
Shawn’s Answer
Python is a good start.
C/C++ if you want to understand how computer works.
Java/Javascripts if you want to learn Web programming.
Cem’s Answer
1. JAVA
2. PYTHON
It really depends on what you want to be doing within this field but the these are the two must haves - especially Python.
Raj’s Answer
Casey’s Answer
In my experience, I would definitely recommend to learn the basics 1st (C#). As far as what I have noticed being used in companies, I would say Javascript and SQL the most, but Python is also very much in demand.
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
https://video.cs50.net/2017/fall/lectures/1
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:
Sankkara Narayanan’s Answer
C
The most basic, raw, down to metal high-level language. Most modern languages are built on some flavor of C. So, basically learn C and learn it good.
Srinivas’s Answer
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).
For any career as a computer engineer, I think it is essential to "know" the breadth of available languages, what they are good for, and how they are executed (compiled vs interpreted etc). For pure mastery, start with C (I would not recommend C++), and go to Java, which is great for Object Oriented domain. You should also know one or two scripting style languages like Perl (or PHP, or Python), which if you like can do great things with. JavaScript (ECMAScript) introduces a totally new way to think about OOP, based on its "prototype" based concepts, unlike Java, which is purely type-based (think of Classes). Look at the latest trend in list of popular languages and JavaScript is spiking fast (but is little harder to master). Another language that is easy to learn and get going is Python.
Srinivas recommends the following next steps:
Sri’s Answer
Qizhi’s Answer
Sindhura’s Answer
Vivek’s Answer
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.
Daniel’s Answer
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.
Pradip’s Answer
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.
Amy’s Answer
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.
2b) Web apps gets you into the realm of JavaScript and Node.js. There's whole worlds of platforms built there like React, Rails, Vue.js. You can do things that work on web servers that talk to your web browser and back again. There's more advanced stuff like processing queues in the "cloud" on Amazon servers. And you can get even more complicated when you talk about security and scalability. That starts to cross back into computer engineering. And as you go "up stack" you bridge into user experience.
2c) Web design is a whole universe of itself and is related to web apps. Web design is where you begin to think about what an app does, who are the users (user research, usability), how does it look (design, style, CSS, graphics), how does it sound (audio design), how do people speaking different languages use it (internationalization), accessibility. Wow. So much. I'd pick what resonates with you and start to dive into each of these sub-universes. JavaScript will still be your friend in rapid prototyping, doing frontend work, and understanding how browsers work.
Rohit’s Answer
Karthik’s Answer
Joanne’s Answer
Python
It's a friendly, open-source based language used by the masses.