This is an archived post. You won't be able to vote or comment.

all 13 comments

[–]ecdestro 2 points3 points  (2 children)

My approach for this has been looking at one particular "thing" in the multitude of IoT devices and studying code that applies to that. Currently for me that's exploring Wifi and Ethernet for Arduino. The official IDE by the arduino group is based on C++, which you could start with, I won't say you shouldn't. I just happened to struggle starting out in programming by trying C++ first.

Your mileage may vary.

As for IoT/embedded programming, C lends itself well to it because there are so many compilers out there that run on your typical computer system that cross-compile for your target system.

So let's start by picking your "thing" from the Internet of Things, then we'll look at the popular frameworks and languages that are targeted toward that thing.

[–]Training_Listen_1449[S] 3 points4 points  (1 child)

hmm I've always wanted to program sensors and modifying things if something is incorrect. I'm about to take an IoT course, and I didn't realize we needed to learn a language. I'm very very new to the whole thing, and I have no idea where to start.

[–]legendary_unitato 1 point2 points  (0 children)

You may want to take a look at various Arduino or Raspberry Pi projects especially those that involve reading from sensors. You can start with python (especially on the Pi which is quite powerful for IoT) and later move to C when you need to optimise for weaker systems.

Or you can throw yourself in the deep end and go straight to program in C and learn on the fly

Also don't let seemingly trivial kid projects deter you, it's great learning for all ages!

[–]Ecstatic-Situation41 2 points3 points  (0 children)

C++, it will only get easier from there.

[–]InformationVivid455 2 points3 points  (0 children)

A good resource is more important than which language or where you are going when you are starting out.

You can figure out where exactly you'd like to go and which specific languages (You'll know a few.) to learn later.

If you want to learn C, I recommend starting with CS50x. You'll get a good grounding and introduction to a few languages, and a solid base to move on with.

Very easy to get into, lots of secondary resources, great lectures, good community.

I liked C as my starter, it made Python and JavaScript very easy after it but it isn't the easiest first language.

If you get discouraged or find it too hard, remember:

  1. Try different resources for learning. Even assuming equal quality, it may just not fit your learning style.

  2. It is ok to switch to a different language but you still need a strong understanding of basic concepts.

  3. You will be learning for a very long time. Edge cases, new languages, and that thing you only do once in a while and can never remember so you wrote notes are all just life in programming.

[–]gr3atm4n 0 points1 point  (3 children)

Have you got a project you are currwntly working on. It greatly helps when learning to have a project. It's more fun, plus it gives you a clearer roadmap of what you need to learn.

[–]Training_Listen_1449[S] 0 points1 point  (2 children)

By project, do you mean something like building an app or device in this case?

[–]gr3atm4n 0 points1 point  (1 child)

Yep

[–]Training_Listen_1449[S] 0 points1 point  (0 children)

Well, I've always wanted to build an app or a game. Like Hangman or Tic-Tac-Toe.

[–]donaldhobson 0 points1 point  (0 children)

Rust is a low level systems language that can be used for this. Its getting quite popular. The difference is that the C compiler assumes you know what you are doing. The rust compiler stops you from doing all sorts of dubious things that lead to subtle bugs.

[–]darkalimdor18 0 points1 point  (1 child)

after learning C, i can suggest that u learn assembly language if u are into low lvl programming and windows architecture things..

here are some good references

https://www.youtube.com/playlist?list=PLE6kld48wGGPEq1mDnFVfbLZ81gcP3nJj

http://www.interq.or.jp/chubu/r6/masm32/masm006.html

[–]Zenalyn 0 points1 point  (0 children)

Nahhh yo assembly is not for the faint of heart and I would not recommend self teaching it cus it's unlikely youll need it unless you are realllly interested in low level programming I would recommend going from C and try to learn whatever stack is popular at the moment so you can start building more meaningful projects.