element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Code Exchange
  • Technologies
  • More
Code Exchange
Polls What programming language should EE's learn first?
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Code Exchange to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Engagement
  • Author Author: bluescreen
  • Date Created: 13 Feb 2014 4:26 AM Date Created
  • Last Updated Last Updated: 11 Oct 2021 3:01 PM
  • Views 9905 views
  • Likes 0 likes
  • Comments 88 comments
Related
Recommended

What programming language should EE's learn first?

  • Share
  • History
  • More
  • Cancel
  • Sign in to reply

Top Comments

  • johnbeetem
    johnbeetem over 12 years ago +2
    Oh goodie, language wars! Personally, I think C and C++ are terrible first programming languages. C is a great language for writing compact code that maps directly into machine language, but for teaching…
  • Former Member
    Former Member over 12 years ago +2
    Ruby! It's python's beautiful little sister.
  • Former Member
    Former Member over 12 years ago +2
    Very important distinction here is that the question specified "EE", not "CS"! EEs should learn C first, but not bother with C++ so much. C compilers are available for every processor made and by learning…
  • bluescreen
    bluescreen over 12 years ago in reply to Catwell

    But Assembly's hard!

     

    image

     

    Actually, I'm doing a home course to brush-up on my assembly chops. I remember now why I didn't like it the first time around in college.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Catwell
    Catwell over 12 years ago

    There should be no other choice.

     

    Learning the lowest level language possible, Assembly.

     

    Understanding how programming works at that level is key to being a good programmer.

     

    C

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Former Member
    Former Member over 12 years ago

    If you want to learn programming then I think you should steer clear of the C family of languages as a  first language. Once you've got the basic ideas burnt into your brain then I'd guess you can introduce those languages since a lot of embedded stuff is done in it, although with developments like MicroPython (see Micro Python - Python for microcontrollers) then I'm not sure that it will be as relevant in the future.

     

    I voted for Python as a first language (it has a  simple syntax with fewer oddities than a lot of other languages, has fantastic libraries, and there's very little verbiage with it), but just having done some largish programming projects (non-embedded) I really appreciate a strongly typed language with a good IDE, e.g., VB.NET in Visual Studio, although this isn't terribly viable for EE work.

     

    As an aside look at http://www.nhtsa.gov/staticfiles/nvs/pdf/NASA_FR_Appendix_A_Software.pdf for details of the investigation that NASA did into the Unexplained Acceleration problems suffered by Toyota cars in the States. The software was all written in C, and the company has a mandatory programming style that forbids the use of certain parts of the language since they are the ones that  tend to cause problems.

     

    As CAR Hoare said "There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies.". I think he was referring to C++.

     

    Some other quotes I found about other languages are at http://www.scriptol.com/programming/quotes.php.

     

    I particularly like the inventor of C++ on the entire topic: "There are only two kinds of programming languages: those people always *** about and those nobody uses.”

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Former Member
    Former Member over 12 years ago

    Ruby!

     

    It's python's beautiful little sister.

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • michaelkellett
    michaelkellett over 12 years ago in reply to michaelwylie

    It's a tricky question and actually not seriously answerable. "What programming language should EE's (sic) learn first" (for those who don't recognise it (sic) means that I am quoting the OP's incorrect use of apostophe image).

    The problem is that you don't know if you are dealing with an EE when you teach someone their first programming language.

    So there are several answers:

    a first programming langauge (learnt at school by everyone ?):

    I'd vote for BASIC - easy to get into, easy to get a result, possible to do great things, easy to grow out of and learn seomething else for real work.

    a programming langauge taught at Uni to new intake of EEs:

    Today, Python - you can use it to do maths, control servers, manage data bases etc. later on I'd look at C, assembler etc but only for EEs with a software bias.

     

    (BTW, despite being a long term MATLAB user I would BAN it from Uni - that's a bit strong I know but I'm becoming increasingly unhappy with the way Mathworks tries to lure students in with a give away priced student version and special Academic deals but charges outrageous prices when you want to use it at work. The basic MATLAB langauge can't make a TCP connection without an £800 add on. Try Pyzo instead. (Phew... rant over))

     

    I voted for Python as the closest I could get to my answer to my guess at the intent of the question.

     

    MK

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • michaelwylie
    michaelwylie over 12 years ago

    MatLab. Most versatile since it allows for complex analysis, and it's not a far stretch to learn C after.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • bluescreen
    bluescreen over 12 years ago in reply to johnbeetem

    I spent the better part of my undergraduate days learning to code Pascal.

     

    Recursive loops, omg... image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • johnbeetem
    johnbeetem over 12 years ago

    Oh goodie, language wars!

     

    Personally, I think C and C++ are terrible first programming languages.  C is a great language for writing compact code that maps directly into machine language, but for teaching programming concepts IMO you're much better off with a less compact language that clarifies the concepts you're trying to teach.

     

    I voted for Pascal.  It was designed from the beginning to teach good programming practices like block structuring, declaring variables before using them, and procedure/function calls.  Implementations include bounds checking on arrays so you're less likely to stomp on the wrong memory location, something easy to do in C and hard for a newbie to debug.  Implementations also tend to have better compiler error messages than C.

     

    After Pascal, I think an assembly language should come next.  C is IMO better learned after assembly language, since in many ways C is a portable assembly language that uses high-level notations.  IMO you're going to be a better C programmer if you're familiar with ASM, and you'll be in better shape to debug run-time errors that can only be understood at the ASM level.

     

    Alert readers will notice that I didn't say when to add C++.

     

    I haven't studied Python enough to form an opinion.

     

    JMO/YMMV

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • More
    • Cancel
<
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube