7 answers

what kind of programming language would you recommend for a computer engineer thats also a freshmen in high school?

Updated Thorsby, Alabama

7 answers

Srinivas’s Answer

Updated

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:

  • Online sites like Youtube, Udemy are great for learning new languages.
  • Visit local bookstore and look at the books on available languages. The ones shelved are probably popular :)

Ken’s Answer

Updated Cleveland, Ohio

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:

  • The first step is to take an interest and aptitude test and have it interpreted by your school counselor to see if you share the personality traits necessary to enter the field. You might want to do this again upon entry into college, as the interpretation might differ slightly due to the course offering of the school. However, do not wait until entering college, as the information from the test will help to determine the courses that you take in high school. Too many students, due to poor planning, end up paying for courses in college which they could have taken for free in high school. This is very important for confirming your career choice or selecting a new one if your interests and personality traits do not fit comfortably with those who are working in that career area.
  • Next, when you have the results of the testing, talk to the person at your high school and college who tracks and works with graduates to arrange to talk to, visit, and possibly shadow people doing what you think that you might want to do, so that you can get know what they are doing and how they got there. Here are some tips: ## http://www.wikihow.com/Network ## ## https://www.themuse.com/advice/nonawkward-ways-to-start-and-end-networking-conversations ## ## https://www.themuse.com/advice/4-questions-to-ask-your-network-besides-can-you-get-me-a-job?ref=carousel-slide-1 ## These contacts possibly lead to a variety of career exposure opportunities such as summer jobs and internships and coop opportuniteis.
  • Locate and attend meetings of professional associations to which people who are doing what you think that you want to do belong, so that you can get their advice. These associations may offer or know of intern, coop, shadowing, and scholarship opportunities. These associations are the means whereby the professionals keep abreast of their career area following college and advance in their career. Here are some tips: ## https://www.careeronestop.org/BusinessCenter/Toolkit/find-professional-associations.aspx?&frd=true ## ## https://www.themuse.com/advice/9-tips-for-navigating-your-first-networking-event ##
  • Here are some very helpful links regarding engineering as a career. Disregard that one appears to be aimed at girls, as it is the most comprehensive review of the engineering field that I have encountered. ## https://www.engineergirl.org/ ## ## http://www.futureengineers.org/ ## ## https://www.youtube.com/watch?v=43zVcmTJSKM ##
  • It is very important to express your appreciation to those who help you along the way to be able to continue to receive helpful information and to create important networking contacts along the way. Here are some good tips: ## https://www.themuse.com/advice/the-informational-interview-thank-you-note-smart-people-know-to-send?ref=recently-published-2 ## ## https://www.themuse.com/advice/3-tips-for-writing-a-thank-you-note-thatll-make-you-look-like-the-best-candidate-alive?bsft_eid=7e230cba-a92f-4ec7-8ca3-2f50c8fc9c3c&bsft_pid=d08b95c2-bc8f-4eae-8618-d0826841a284&utm_medium=email&utm_campaign=daily_20171020&utm_source=blueshift&utm_content=daily_20171020&bsft_clkid=edfe52ae-9e40-4d90-8e6a-e0bb76116570&bsft_uid=54658fa1-0090-41fd-b88c-20a86c513a6c&bsft_mid=214115cb-cca2-4aec-aa86-92a31d371185&bsft_pp=2 ##

Sankkara Narayanan’s Answer

Updated Bengaluru, Karnataka, India

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.

Paul’s Answer

Updated

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.

Next, I would probably look at JavaScript. If you learn this language, you can start experimenting with building websites that do a bit more than just display information with HTML. Once you understand JavaScript, you could then start using it in more advanced server-side frameworks such as Node.js and React.

Casey’s Answer

Updated Piscataway Township, New Jersey

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:

  • Watch all of the CS50 lectures.

Joanne’s Answer

Updated Montclair, New Jersey

Python


It's a friendly, open-source based language used by the masses.



Daniel’s Answer

Updated Seattle, Washington

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.