# I want to learn how to program and build electronics



## WindowLicker

But (not to sound like a third world problem) I'm a girl. 
I have no friends with these interests, and I don't know where to even get this knowledge, except for schools, which in my opinion is where people go JUST to earn their degrees and not actually learn with a passion or to fuel their ideas.... 

Is there a group I can join that I can learn how to do this stuff with? 

I need to make things to make my life better, so I can be lazier. So I can pretend my house is a robot that works for me. I'm good at math, and business, and very resourceful/motivated. I guess the level of how good I want to be is ability to build and program my own jukebox good, that would suffice.

Can someone point me in the right direction? Thank you.


----------



## Abdurrahman Kh

I have similar problem, I am a boy, but I dont know friends want to make/program games ... and its been hard for me because of that... but I evolved in the field without friends, Im not saying its not going to be hard, and probably its much easier to me because INTPs are very independent individuals.
Im going to say stuff that helped me, I hope It will be helpful to you as well.

*1- create a Twitter account*, follow people from the field your interested in, those people will retweet others, so you can follow them too, twitter system is also smart and will suggest people based on your interests... this helped me in knowing so much wisdom-news-info-competitions and so much more about game design.... its really important to stay in touch especially when it comes to technology (for example : I started to learn AS2 before I knew anything about AS3; I wasted some time; now I have to learn AS3!!)

*2- Read Books*, then read some more books! I think a book is the best teacher, and most of my knowledge came from books.. choose your books wisely though, read the index, the intro, read about the writer, Its worth it... you dont want to start a book about technology, then feel like you are not interested after reaching the middle of it

*3- consider schools *! : I know how schools are like; I hate my collage, its a waste of time, and here in Egypt the education is much worse than anywhere... and Im probably not going to complete my education... but what good about collage is they tell you whats important; they give you books, you can explore a lot. the other student think Im a genius in programming (and Im really really not), its just because I read and learn programming on my own (started before collage)... but collage pointed interesting topics and abstract ideas that would be hard to find anywhere else, plus, schools are good place to meet friends and to force you with doing some research you probably wont do on your own.

*4- make friends* ! : Its hard to me to make friends, even over the internet, but you are an ENFP and I think its much easier for you. as I said schools is a good place to start, also online communities are a good solution. game developers in Arab countries are very-rare,but even here I found this online community for female Arab game-developers. the step 1 is good to find those communities, and If you r saying girls dont like this stuff, befriend males, Id be totally interested if female developer wanted to be a friend with me (also Im pretty sure you can look for females who love programming, you can find some)

finally I recommend those(two episodes)






all of what I said is about being a developer, but I think it can help with electronics as well...
I wish you the best of luckroud:


----------



## ptarmigan

I'm going to vouch for online communities when it comes to hobby electronics. It's in no way an unpopular hobby and people love to share their creations. Search for hobby electronics forums or browse YouTube and follow what piques your interest. If you don't know where to start with a project, seeing what other people have done will quickly give you some ideas about that. I think the resources you'll find specialized in the kinds of things you want to build are going to be the most help to you. Find people who have done similar things to the way you want to implement your project. If they are too advanced or you don't know how to use a soldering iron or a multimeter, I think Sparkfun Electronics has some good info on the basics of electronics theory and electronics equipment. They also sell things from parts to projects. I think how to program is going to be similar. If it's a matter of picking up a specific language, there are online reference manuals. What I might try if I had no knowledge of how to program at all is to pick a system you're going to use for your project and get a book on how to program in the necessary language. You can learn programming online perhaps, but I think it involves enough separate concerns that to really get some understanding of how to system works you'll likely want a book to sit down and read, and a development system you can practice on. Most electronics projects with brains are going to have two sides to it. From the development system you want to work with, you'll have to work inward with the software and programming and outward with whatever hardware peripherals it is going to control. I would start with getting a good understanding of the brain. Learn how to make it drive its different outputs. Then you can collect those outputs with things to actuate, sensors, or whatever you want. When it comes time to planning out how your project will work, you can start with the needs of your peripherals to determine how the brain has to work and build it around that.

I wish I could give you something more solid but I'm not the expert in these things. I work as an electronics engineer and have built and programmed robotics so I could potentially help you with some technical details, but I'm truly a novice at these things. I'd be happy to help with anything I can, though, because this is actually what I deeply enjoy.


----------



## wuliheron

The Steam hardware forums are a great place to start for learning how to build a computer.

Hardware and Operating Systems - Steam Users' Forums

I recommend it all the time because it is well moderated and frequented by professionals who enjoy helping people out.


----------



## Reldnew

Speaking as an Information technology major. Programming is difficult, which is why i switched over to the more operation and hardware side of the academics. However if you do want to learn how to program, here is a few recommendations. 
1. Take A (singular entry level, if you like it take the next one) college class, i know it may be expensive. What college will give is the tools to start and the logic behind the code. (#1 lesson i got out of it, "the computer will do what you tell it to do, NOT what you want it to do")
2. Look into Linux based operating systems. They are free and some will come with tools to help you program. (programmers love it because of the low over head that allows the code to compile faster, and they have more control over what their system is.) 
3. reddit.com/r/programming or other like subreddits (like /r/linux) is a great community forum 
4. Do your research into what language you want to program in, each has its own pro's and cons. I would recommend java because if you can get half way decent at it, you can get a job.

hope that helps


----------



## PowerShell

Buy a Raspberry Pi education bundle: Amazon.com: Raspberry Pi Education Bundle - 512mb, Rev 2.0 Board, User Guide, Power Supply, Case, SD Card and Badge: Computers & Accessories I actually just ordered one last night. It's an inexpensive way to get involved with electronics and programming. For me I have heavy systems administration background but not much programming background. That's the route I'm going to take is mess with the Raspberry Pi. Now it's just a matter of waiting for it to come in the mail.


----------



## WindowLicker

WOW. You guys are really helpful. Like actually helpful. 

@Abdurrahman Kh How long did it take you to actually "grasp" the concept, to the point where once you understood the structure you were able to be creative and make something practical? I do have a book on HTML that I read, and practiced some of it this past week. 

@ptarmigan I am looking into Coco, however this is more of a mobile language and I'm not sure which language I should use to build basic electronics. Any suggestions?

@Reldnew What aspect of it did you find challenging mostly? I understand its highly mathematical and you can't make mistakes when writing the code, but is there more? That was what I was expecting the most difficult part to be. I am actually one of those people who likes math and using it to figure things out though, a lot more than replacting parts in a computer. 

@PowerShell, That looks really cool, but what does it do exactly?


----------



## blit

Hackerspaces/makerspaces for real time flesh people.


----------



## PowerShell

WindowLicker said:


> @_PowerShell_, That looks really cool, but what does it do exactly?


It's a mini-computer that costs $35 and can run on a call phone charger. You can also make your own circuit boards to interface with it. Otherwise you can straight up run an ARM version of Linux on it. The educational bundle will come with an SD card with Linux already on it so you can hit the ground running with it. That's why I bought it.


----------



## Abdurrahman Kh

> How long did it take you to actually "grasp" the concept, to the point where once you understood the structure you were able to be creative and make something practical? I do have a book on HTML that I read, and practiced some of it this past week.


IDK, I dont think of a "point" where I figured I grasped the concept, Im still learning, and I still need to make my first actual enjoyable game... but it took me a long time, I started learning programming 8 years back, I learned flash, tons other stuff which is helpful but not really related to game designing, I started to learn concepts of design 4 years ago (btw Im super lazy so I practice what I've learned very slow) ...

But 2008 was the year of Indie games,which was really inspiring. Then I knew that what exactly Im gonna do... and I started to learn the right things,discover the community, I even started . so it was kind of a coincidence. but on the learning curve, maybe the most important point when Id read my first book of programming games (2009), I thought I'll be able to make games and even make money when I finished the book, but the truth is .. I wasn't even close


----------



## HouseOfFlux

It's always been a passing curiosity of mine, but I too am just not sure where I would start. A poster made a very good mention regarding Twitter though - so many big names in different industries use it and give you the low down on developments and opportunities you just don't hear about in other media.


----------



## WindowLicker

PowerShell said:


> It's a mini-computer that costs $35 and can run on a call phone charger. You can also make your own circuit boards to interface with it. Otherwise you can straight up run an ARM version of Linux on it. The educational bundle will come with an SD card with Linux already on it so you can hit the ground running with it. That's why I bought it.


Hey did you get it yet? Just wondering how you like it so far.


----------



## The Wanderering ______

Reference Life hacker articles

Learn to Code: The Full Beginner's Guide


Top 10 Essential DIY Skills That Aren't as Hard as You Think


----------



## PowerShell

WindowLicker said:


> Hey did you get it yet? Just wondering how you like it so far.


Yeah I got it. It booted up great and I have played around with it a little. It'll definitely help me learn Linux better. Right now I have an insane amount of Windows administration experience but not much Linux. I just need to get Java installed on it so I can play around learning that.


----------



## blit

PowerShell said:


> Yeah I got it. It booted up great and I have played around with it a little. It'll definitely help me learn Linux better. Right now I have an insane amount of Windows administration experience but not much Linux. I just need to get Java installed on it so I can play around learning that.


Java's whack, yo!


----------



## PowerShell

Muck Fe said:


> Java's whack, yo!


But you can developed Android and Facebook apps with it :wink:


----------



## blit

PowerShell said:


> But you can developed Android and Facebook apps with it :wink:


They're whack too. :happy:


----------



## PowerShell

Muck Fe said:


> They're whack too. :happy:


Says the guy not making money from them


----------



## blit

PowerShell said:


> Says the guy not making money from them


I'll pay you an image of this money, so I'd win this whacky debate.









_Java is still a crappy language. :O_ Yeah. Back on topic, don't learn Java if you can resist.


----------



## Random2d

When you first learn to program, you will be focusing on the syntax primarily. However, try to also realize the bigger picture while following a tutorial. There are different paradigms of programming, and how one can approach programming. A professional knows these different paradigms and design patterns, along with a couple of languages extremely well. But anyway, I'm jumping ahead of myself.

The best way to learn programming, is "the hard way." (stolen "Learn Python The Hard Way" <--Google that)

This means whenever you are following a tutorial, you *type out the code*. Never copy and paste and say "oh I understand." You will also learn a lot while debugging your programs. Explain to yourself what the code does, try to understand how the machine is actually "thinking" and how it is executing the code. 

As for resources, most people first learn C++, Java, or Python. There are several subreddits on reddit that help with this

/r/learnprogramming

From there you can find the other subreddits 

Also check out the MOOC places such as Coursera, Khan Academy, Udacity

(I would link to everything but I don't have enough posts)

Best of luck!


----------



## PowerShell

Random2d said:


> This means whenever you are following a tutorial, you *type out the code*. Never copy and paste and say "oh I understand." You will also learn a lot while debugging your programs. Explain to yourself what the code does, try to understand how the machine is actually "thinking" and how it is executing the code.


I took it a step further and used edit in the command prompt (because it kept indentation on the next line) and then used the command line compiler. This really helped me understand how to find my mistakes and often the line being pointed out by the compiler as having an issue, wasn't the line actually causing the issue. This was also with Java (I took a class in high school and also college).


----------



## Adhokk

WindowLicker said:


> But (not to sound like a third world problem) I'm a girl.
> I have no friends with these interests, and I don't know where to even get this knowledge, except for schools, which in my opinion is where people go JUST to earn their degrees and not actually learn with a passion or to fuel their ideas....
> 
> Is there a group I can join that I can learn how to do this stuff with?
> 
> I need to make things to make my life better, so I can be lazier. So I can pretend my house is a robot that works for me. I'm good at math, and business, and very resourceful/motivated. I guess the level of how good I want to be is ability to build and program my own jukebox good, that would suffice.
> 
> Can someone point me in the right direction? Thank you.



I've been interested in all this stuff since I was a kid. When I finally got to my first programming class in college I thought it was the most monotonous thing ever. I realized that there were so many applicable fields to making a complete product, that focusing on one of it's parts was silly. 

If you want to make a complete product that is of your own inspiration than you need to be in control. You need the money and the intellectual property (patent) to make it happen. Go invent something, design it, patent it, make it profitable on paper, then get money.

The last step seems the most daunting, but if it truly is a good idea, the money finds you. You just need visibility! Try this:

1. Kickstarter campaign Kickstarter

2. Form a solid business plan showing profitability on paper and get a meeting with a representative of a Venture Capital Firm. These firms routinely give out millions of dollars to fund businesses with the next hot product.

It will take years, but who knows, might be the most fulfilling thing you ever do.


----------



## Ryus

Perhaps try various DIY websites such as Instructables, where you are given a list of instructions on how to do projects therefore learn by doing. Though, my favourite method is to think of an idea, and then look for online resources in order to achieve my goal.

For example; right now, while typing this, I just thought of making home automation using the raspberry pi by using sensors around the house to turn on/off lights and to read IRC messagesthrough a speaker. Coming back 20 minutes after because I got ethuastic for the idea, I just found a guy who already made a similar project so I am able to use that as a guideline, causing me to tinker with it during the way.

It's fun! I know my father will fear ghosts are in the house if I placed it in his room. Hehe.

That said, most of computer learning is through mistakes and problem solving. Because you are new, I'd suggest to learn Python since it's easier to use than C (for example) and is widely used. Then once you're familiar with how a computer works, alike English-French, learning a second language just takes a few adjustments.

Some links for physical computing: 



http://www.instructables.com/ 
https://www.youtube.com/user/thebenheckshow/videos 
http://hackaday.com/ (http://hackaday.com/?s=rpi ; for Raspberry Pi) 
https://www.youtube.com/user/makemagazine 
 
Programming material:



http://www.learncodethehardway.com/ 
http://www.codecademy.com/ 
http://www.htmldog.com/guides/html/ 
http://www.wikihow.com/Category:Computers-and-Electronics 

Problems to practice:



http://codingbat.com/ 

Because I'm new, you will need to copy/paste links. Sorry.


----------



## TheSeer91

arduino


----------



## Ryus

TheSeer91 said:


> arduino


Neato.
The Arduino's main purpose is single function uses. Not if that's a a bad thing; depending on the project, it can be ideal.
Atm, I have mine blinking LEDs on my desk. Not doing anything with it yet.


----------



## Zombie Devil Duckie

> I don't know where to even get this knowledge, except for schools, which in my opinion is where people go JUST to earn their degrees and not actually learn with a passion or to fuel their ideas....


That's what some people do. It's an extension of High School and a reason to party away from home. 

However, if you are motivated and ignore the cattle just trying to get drunk and have sex, you will learn everything you want and need to know to get started in your field in College (not saying it's a bad thing, but it is a distraction).

It won't be easy, cheap or quick. College classes are made to be difficult. It's expensive for tuition, housing and "extras" and, depending on your major (you sound like someone who might enjoy being an Electrical Engineer) you can expect to spend 4-5 years getting your Bachelors of Science and another 2 to 3 years getting your Masters degree. 

There are plenty of people who have skipped College and have been successful. Given the amount of jobs out there, and the field/general area you are looking at, your employment will probably come from formal schooling. Sorry, but the people who skip college and make it are in the right place at the right time with the right knowledge and skills and have the right personality for it. The tens of millions of the rest of us get our education from Colleges the traditional way.


https://en.wikipedia.org/wiki/Electrical_engineering

Electrical Engineering Jobs


:wink:




-ZDD


----------



## liccht

No idea how old you are, but if you're in high school, have you heard of FIRST Robotics? usfirst.org/roboticsprograms/frc 
It's a robotics competition for high school students, and you can build or program or do both. I tried it in high school and found that everyone there had been doing it for years already and I was the lone duck, but maybe you'll get lucky with it. 

Also, you can try meeting people in problem solving clubs - pretty much coding competitions, so a lot of universities have a clubs that meet up to practice for them. If you're lucky though your school might host simple competitions for beginners and those are always fun. No building electronics though.... 
Here's a pretty big one with links to regional competitions: icpc.baylor.edu/

Otherwise, you have to go to school. If you're really into it, you can always learn to code by getting a book, hunkering down on command line and learning it yourself, but if you want to build electronics that's a bit more hands on. I know my university has an evening electronics course, though only for students - maybe a university nearby or even a technical institute has a general one though? 

I learned how to program inadvertently during first year of engineering - I'm so glad I stumbled on to it or else I never would have even thought it was interesting... School is good for some things  

Good luck


----------



## timeless

You should learn C. You don't need to go out of your way to do it. Just get a C compiler for whatever operating system you use, as well as a book on C, and then get to it.

Programs written in C can run on so many different platforms. Microprocessors, desktop computers, you name it. Also, many other languages are at least inspired by C. 

C++ is an extension of C that includes object oriented programming as well as bunch of other changes. C and C++ are so ubiquitous that many other programming languages, like Java, derive their syntax from them. Even PHP is pretty similar to C syntax. I learned PHP in no time due to my prior experience with C.

So if you learn C, you will easily pick up C++, which will make it far easier to learn other languages. And it doesn't take a lot of effort, just a compiler and a book.


----------



## PowerShell

timeless said:


> You should learn C. You don't need to go out of your way to do it. Just get a C compiler for whatever operating system you use, as well as a book on C, and then get to it.


You you use Linux a C compiler is built right in.


----------



## Random2d

Also, since you said you like math, you might want to check out projecteuler.net for programming problems centered around math.

Also for small programming challenges:
For learning, refreshing, or just for fun!

And yes, my ubuntu installation came with gcc installed.


----------



## timeless

PowerShell said:


> You you use Linux a C compiler is built right in.


Yes, that's true, but honestly it's easier for a Windows user to just download a compiler instead of installing a completely new OS.


----------



## Reldnew

Sorry for the late reply. 
No math wasn't my problem (though if i had stayed a CS major i would had to have taken though calc 3 or higher). Math isn't a major part of programming unless you are doing some high end stuff or specialized stuff. You will have to understand that programming languages will interpret some things strangely (in C++, what i learned in school, the % sign doesn't mean percent). 

Next, yes everything has to be right, the debugging process will drive you up the wall (again the computer will do what you tell it to do, not what you want it to do). You will spend hours looking for the extra ';' in your code. Which is one of the things i didn't want do deal with. With that comes the syntax, this will come to you the more you use it, but when you first start out trying to remember everything you can do or how to type it correctly is infuriating. 

With all of that the hardest part is figuring out the best way to solve the problem you are given. Debugging is time consuming, syntax is based off your recalling or google-fo skills. The hardest part is taking a problem and creating an elegant solution to it. How you approach a problem will define how well your project goes. My advice for this: use paper. (now you're probably thinking, why use paper when you are programming on a computer?) good question. When you are first given a problem write it down then break it down. Define the parts needed to get it to work, draw diagrams, jot down every stray thought, Write down how the logic of the code should go (not the code, the logic of what the code should do). Once you have all of this then start writing the code, you will constantly be looking back at your papers to remind yourself of what each section of code is for so you don't get distracted or put the wrong code in the wrong place. 

hope this helps, again sorry for late reply


----------



## PowerShell

timeless said:


> Yes, that's true, but honestly it's easier for a Windows user to just download a compiler instead of installing a completely new OS.


Definitely true. I was just pointing it out since Linux is free and all the source code readily available once they are able to and/or want to do more advanced tinkering.


----------



## sly

programming deadens your soul.


----------



## PowerShell

sly said:


> programming deadens your soul.


Why? Jaded by a corporate career in it? Corporations will kill the heart and soul of anything.


----------



## sly

PowerShell said:


> Why? Jaded by a corporate career in it? Corporations will kill the heart and soul of anything.


I am no programmer, but work closel3 with programmers. Damn, I feel sorr3 for them.

>No respect from other emplo3ees, onl spoken to when someone has a computer problem.
>zero prestige
>No understanding from higher ups, managers managing them don't understand what the3 do.
>low lifespan knowledge capital.COBOL/Powerbuilder an3one?


----------



## WindowLicker

sly said:


> programming deadens your soul.


How so? I understand you're speaking from experience, but some people like certain types of stress. I'm the kind of person who stares at the timer on the eliptical for 30 minutes straight because anything else makes me impatient. That may sound weird, but I know what I'm getting into sooo yeah. I realize thats not average though.



sly said:


> I am no programmer, but work closel3 with programmers. Damn, I feel sorr3 for them.
> 
> >No respect from other emplo3ees, onl spoken to when someone has a computer problem.
> >zero prestige
> >No understanding from higher ups, managers managing them don't understand what the3 do.
> >low lifespan knowledge capital.COBOL/Powerbuilder an3one?


Are you sure they don't like their jobs? They did choose that career after all and they sound like they are valuable, in order to survive you have to be needed, perhaps not socially, but most IT guys are introverted anyway. I know the IT guys at Lifelock are highly valued and respected. It was fun disecting the submersible aqua flora lights with them, I couldn't have gotten away with that at any other table. ^_^

What does a typical manager not knowing what to do situation look like?

And what is low lifespan knowledge capital?


----------



## sly

WindowLicker said:


> How so? I understand you're speaking from experience, but some people like certain types of stress. I'm the kind of person who stares at the timer on the eliptical for 30 minutes straight because anything else makes me impatient. That may sound weird, but I know what I'm getting into sooo yeah. I realize thats not average though.


It just feels like that, hunched back behind a computer ticking stuff da3 after da3, 3ear after 3ear. Sitting in some cubicle.




WindowLicker said:


> Are you sure they don't like their jobs? They did choose that career after all and they sound like they are valuable, in order to survive you have to be needed, perhaps not socially, but most IT guys are introverted anyway. I know the IT guys at Lifelock are highly valued and respected. It was fun disecting the submersible aqua flora lights with them, I couldn't have gotten away with that at any other table. ^_^
> 
> What does a typical manager not knowing what to do situation look like?
> 
> And what is low lifespan knowledge capital?



If I'd ask them directl3, the3 would just shrug in relative apath3. But then again, I work with onl3 senior programmers, no enthausiast 3oung gu3s + the core interests within the compan3 is not it-related, like in lifelock(id-theft is usuall3 digital right?).

managers: technical problems => operators solve it themselves, managers onl3 facilitate in providing the necessar3 resources. means more autonom3 for the workers, but less understanding from managers in deep technical things. 

If it happens that a t3pical manager does not know how a situation looks like, he'll probabl3 make a shitload of calls and things sort themselves out. More competent managers keep tabs on ever3thing and if _i_t happens that the3 lose sight, the grab a paper and make a drawing in which relevant factors are brought into picture.

low lifespan knowledge capital:
technological singularit3 -> programming languages don't last long-> at some point in time 3ou will reach a wa3point in which 3ou can either continue 3our expertise or catch up on a new language(and therefore start anew).

lifelock seems like a cool compan3 to work for.


----------



## Philosophaser Song Boy

College

I had many friends who were girls while I attempted Electrical Engineering.


----------



## shadowjasmine

liccht said:


> No idea how old you are, but if you're in high school, have you heard of FIRST Robotics? usfirst.org/roboticsprograms/frc
> It's a robotics competition for high school students, and you can build or program or do both. I tried it in high school and found that everyone there had been doing it for years already and I was the lone duck, but maybe you'll get lucky with it.
> 
> Also, you can try meeting people in problem solving clubs - pretty much coding competitions, so a lot of universities have a clubs that meet up to practice for them. If you're lucky though your school might host simple competitions for beginners and those are always fun. No building electronics though....
> Here's a pretty big one with links to regional competitions: icpc.baylor.edu/
> 
> Otherwise, you have to go to school. If you're really into it, you can always learn to code by getting a book, hunkering down on command line and learning it yourself, but if you want to build electronics that's a bit more hands on. I know my university has an evening electronics course, though only for students - maybe a university nearby or even a technical institute has a general one though?
> 
> I learned how to program inadvertently during first year of engineering - I'm so glad I stumbled on to it or else I never would have even thought it was interesting... School is good for some things
> 
> Good luck


yeah learning to program a robot is the best start
try to get more experience with actual electronics with some toy robot kit
get those electronics project books and stuff


----------



## LibertyPrime

WindowLicker said:


> But (not to sound like a third world problem) I'm a girl.
> I have no friends with these interests, and I don't know where to even get this knowledge, except for schools, which in my opinion is where people go JUST to earn their degrees and not actually learn with a passion or to fuel their ideas....
> 
> Is there a group I can join that I can learn how to do this stuff with?
> 
> I need to make things to make my life better, so I can be lazier. So I can pretend my house is a robot that works for me. I'm good at math, and business, and very resourceful/motivated. I guess the level of how good I want to be is ability to build and program my own jukebox good, that would suffice.
> 
> Can someone point me in the right direction? Thank you.


*Go here for programming:* Become a Programmer, Motherfucker

It is recommended to learn C and then C++, then whatever you want. The most important thing is to *think like a programmer*. WARNING: programming could turn out to be something boring.

*For web related programming here:* http://teamtreehouse.com/

For electronics a good way to start would be to go to the scrapheap and get junk, take it apart, find info on the internet about the components, blueprints for the stuff and read up on electronics. Just google it and take stuff apart. I learned to build computers like that. When my first PC broke down I took it apart and learned everythng about it that way.

Experiment, tinker explore and be safe so you don't get electrocuted.


----------



## WindowLicker

skillchaos said:


> Yess FIRST Robotics is great I'm on team #1197
> but yeah learning to program a robot is the best start
> I mean I have the same goal as you and I've been thinking to get more experience with actual electronics is to try building a computer or some toy robot kit
> get those electronics project books and stuff


I joined the Robotics club at my community college. There were about 4 other people in the club when I signed up I hope there is a good turn out.


----------



## Ahiko

Yayy! Another ENFP female programmer!  

I self-taught myself how to program since I was 10 years old, but it wasn't until I graduated from college (with a Health Science degree) that I realized I wanted to create things more than help people, so I went to pursue my childhood hobby academically and professionally. I eventually got into a graduate program.. and I'm still helping people while creating things through code! 

To be honest, my motivation about going to school for programming was mainly because of the money and to have a legit Computer Science degree. (I didn't want to be the only programmer at work who didn't have a formal degree, especially if I planned on moving up.)

I'm pretty lazy. Like lazy smart.. -_- But ever since getting into a graduate program for computer science and actually learning the higher level theory, it was instant love.

I do strongly advocate you going to university or at least college, especially being an ENFP. You will easily find friends in the major whom you can network with and find similar interests in. On top of that, you might run into Ts and Js that can help you with the concepts that are more difficult, while giving you a benchmark of your personality differences. You can feed off of their personality and work ethic to help improve yourself as a person.

I had a lot of luck making friends with INTJs, ESTJs and ENTJs in the industry and they really helped to motivate and guide me through learning computer science. Being exposed to many different people aiming for the same goal helped to push me further than if I had learned to program on my own.

I did have an ENFJ senior software engineer tell me that "Knowing up to data structures is enough to make bad code". He didn't mean to criticize my intellect (I had been studying programming for a year and a half at that point), but it did push me to want to be better and be on all the other software developers' levels. Especially since all my colleagues had at least a bachelor's degree.

I personally think that being in school and having set classes helped me to learn a lot quicker than on my own. Even though I learned programming for 14 years before actually pursuing it in school, I picked up a lot of bad habits and was really inefficient because I had no one to really help me. Also, the higher-level theory subjects offered at the university level helped me to "think" in ways that help me write much better, efficient and elegant code than I used to even 2 years ago.

I do have some fun sources for you if you want to do self-study!

Learn by Doing - Code School
DVLUP - Welcome

Good luck and keep at it!


----------



## PowerShell

Ahiko said:


> I'm pretty lazy. Like lazy smart.. -_- But ever since getting into a graduate program for computer science and actually learning the higher level theory, it was instant love.


Lazy is good if you still produce results. Laziness leads to efficiency. If you can find a way less labor-intensive way of doing something and you produce the same results and meet the same standards, that's the best way to do things in my book.


----------



## Kormoran

PowerShell said:


> Buy a Raspberry Pi education bundle: Amazon.com: Raspberry Pi Education Bundle - 512mb, Rev 2.0 Board, User Guide, Power Supply, Case, SD Card and Badge: Computers & Accessories I actually just ordered one last night. It's an inexpensive way to get involved with electronics and programming. For me I have heavy systems administration background but not much programming background. That's the route I'm going to take is mess with the Raspberry Pi. Now it's just a matter of waiting for it to come in the mail.


Another alternative is the Arduino. The difference between Arduino and Raspberry Pi is that the former is more electronics-oriented, while the latter is oriented more towards programming.

I've learnt more from experimentation than I ever did in a classroom.


----------



## Dashing

Learn by Doing - Code School (I'm currently learning Ruby on Rails through these courses. It's a whole lot of fun!)
http://phpacademy.org

Read, breathe and love API's.


----------



## SA1988

If you want to learn something like this, just do it.

The issue of '_I don't know anybody who shares my interests and my local schools aren't good enough_' is a really Western attitude I think.

I'm in Korea right now, where the whole nation is constantly studying - privately, individually - to learn whatever they personally want to learn. People of all ages come to coffee shops and sit for hours with books, notepads, laptops, etc, and teach themselves what they want to know.

Learning isn't only done through institutions. It's done through yourself.

The Internet is at your finger tips. Libraries are surely nearby. Book shops are available.

go go go!


----------



## DemonAbyss10

I would suggest teaching yourself boolean algebra. The concepts help not just with digital circuit design but with programming as well.


----------



## WindowLicker

I wanted to come back and give an update after doing Robotics club for the past 6 months. I've learned a ton! Mostly how to build and program Lego Mindstorm and Vex robots out of a box of parts, screws and bolts, and learned some basic C programming skills.






<Lego Mindstorm






<Vex robot at a competition

I mentored at a STEM (Science Technology Engineering Math) elementary school for after school robotics, and helped students compete in this competition that used robots to do tasks like save lego people from tsunami floods, rescue them from houses, knock over buildings, using a program that they wrote, and build tools to complete the tasks. And lastly my robotics club won *1st place* in a Vex Robotics College competition! 
I don't know how its possible, but I think differently now. I can build, not just robots. I use tools and do house projects on my own. I was recently presented with an opportunity for an internship at Honeywell. I'm really considering it, but I want to work with 3d printers now that I have some experience. Seriously thank you guys for encouraging me to do this.


----------



## PowerShell

WindowLicker said:


> I'm really considering it, but I want to work with 3d printers now that I have some experience. Seriously thank you guys for encouraging me to do this.


3D printers are awesome. I can't wait to move to Austin and then get a job so I can get a TechShop membership and mess with the 3D printers there.


----------



## Razare

WindowLicker said:


> But (not to sound like a third world problem) I'm a girl.
> I have no friends with these interests, and I don't know where to even get this knowledge, except for schools, which in my opinion is where people go JUST to earn their degrees and not actually learn with a passion or to fuel their ideas....
> 
> Is there a group I can join that I can learn how to do this stuff with?
> 
> I need to make things to make my life better, so I can be lazier. So I can pretend my house is a robot that works for me. I'm good at math, and business, and very resourceful/motivated. I guess the level of how good I want to be is ability to build and program my own jukebox good, that would suffice.
> 
> Can someone point me in the right direction? Thank you.


This is generally called electrical engineering. 

I know a really good college for it, Michigan Technological University. Those studying electrical engineering there build all kinds of robots and circuit boards to do various things. The have fabrication labs and everything. Plus there are groups you can join that do various team build projects with access to the college labs.

Just a thought, if you wanted to study it and get a degree. I went there for computer science, but it's mainly an engineering college.


----------



## RosettaStoned

I'd recommend something like Arduino, RaspberryPi, or BeagleBone. You buy the starter kit http://store.arduino.cc/index.php?main_page=product_info&cPath=2&products_id=185#.UyADr142yUY and start making stuff, and not just robots that turn left and right, you can make things like accessories for Android phones or home automation systems.


----------



## thelonemask

As far as Electronics is concerned, you can easily learn all of it's core concepts enough to develop it as a hobby. I'd suggest getting a formal education in these fields if you want to create something spectacular and awesome though. I'm an Electronics Engineering student myself and from what I've learnt, yes you can create a plethora of gadgets with a basic understanding of electronics and gadget design. But to create something complicated like a new optical diode or a particular VLSI system, you need the proper knowledge. I'd suggest reading books systematically(a good way to do this is to download the syllabus of the particular field you're interested in from any university and start reading books on those topics starting from the 1st year straight upto the last).However, teaching yourself the Maths required for higher level concepts can be quite challenging. But if you're up to it, consider joining some forums on these subjects to seek out help whenever you get stuck. There are a few good sites I'll suggest such as:
eeweb.com
ieee.org
elecurls.tripod.com
electronicdesign.com
jrong.tripod.com/elec.html
eng-tips.com/threadminder.cfm?pid=248
edaboard.com/ 
dutchforce.com/~eforum/index.php
electro-tech-online.com/
Well, that's about it. I'm sure you'll find more sites that are better suited to your needs eventually and get to make friends online who'll be able to help you as well as share your passion. And if you ever need any help with electronics, you can ask me as well.:happy:


----------



## dulcinea

I looked up learn by doing. I find www.codecademy.com has more options, to be honest. I like Udacity. They even have a smartphone app which is awesome! Right now, I'm more interested in the coding aspects, and learning IT so that I can take the A+ sometime next year. It's another goal to be Oracle certified, possibly. I like messing with software and hardware. So far, I can see it as really frustrating, but rewarding when I've gotten it, and I'm like "I can make machines do my bidding!!!" I'd love to find a job on the west coast, but I'll probably need to transfer to IT, and finish my degree before I can find anything good. I'm also highly interested in creating smartphone games, preferrably RPGs. 

When I have enough money to get all the parts, I'm interested in making programmable light displays, and small appliances that I can make solar powered. I'm also interested in robotics, as a hobby, at least. I kinda wanna bookmark this forum. So much useful information, but @_thelonemask_, I wish you would've made hyperlinks. I'm so lazy, lol.


----------



## PowerShell

Radioshack has some nice Make kits for learning electronics.


----------



## Razare

WindowLicker said:


> But (not to sound like a third world problem) I'm a girl.
> I have no friends with these interests, and I don't know where to even get this knowledge, except for schools, which in my opinion is where people go JUST to earn their degrees and not actually learn with a passion or to fuel their ideas....
> 
> Is there a group I can join that I can learn how to do this stuff with?
> 
> I need to make things to make my life better, so I can be lazier. So I can pretend my house is a robot that works for me. I'm good at math, and business, and very resourceful/motivated. I guess the level of how good I want to be is ability to build and program my own jukebox good, that would suffice.
> 
> Can someone point me in the right direction? Thank you.


95% of the effort to learn this stuff is figuring it out on your own. Yeah, schools help, (especially if you get stuck) but you end up doing the brunt of the learning on your own time even in colleges.

What you do, is pick a programming language and learn it.

You'd have to talk to someone who is up on the electronic engineering stuff to figure out how you go about starting that.

The programming part is easy, though, if you have lots of time on your hands.

I learned C++ when I was 14. There are some free compilers out there for that.

Free c++ compilers - C++ Forum

I learned Java in college. That's a language you can also learn for free. It's also more relevant today than C++.

Essentials, Part 1, Lesson 1: Compiling & Running a Simple Program

I also recommend PHP if you want to do website stuff. 

Perl is an old but fun language, much like PHP it tends to deal with formatted text applications you find online.

After you learn a programming language or two, you'll then want to learn assembler. The nice thing about C++ is most C++ compilers will let you insert Assembler code right into your program. So you can learn it in an easier environment than trying to boot some device up straight from 1's and 0's.

Fun stuff!


----------



## PowerShell

Setup a workstation like mine:










I have a spare monitor, Arduino kit, soldering iron, Macbook Air, Raspberry Pi, Google Chromebook, and Samsung Galaxy Tab 3.


----------



## WindowLicker

UPDATE #2
This thread radically changed my life path. I just wanted to build a jukebox... but now
TextWindow.WriteLine("I'm a Robotics and Programming teacher! Thank you!!!")


----------



## yet another intj

WindowLicker said:


> I have no friends with these interests, and I don't know where to even get this knowledge, except for schools, which in my opinion is where people go JUST to earn their degrees and not actually learn with a passion or to fuel their ideas....


I agree... About the academical snobbery... But... Getting involved with a discipline to "fuel your ideas" is bullshit. If you have ideas, just be what you are, an entrepreneur. You don't have to learn the atomic structure of a water molecule just because you want to take a shower. Messing with the practical problems of theoretical shit is already a pseudo-autistic venture and you will end up frustrated if all you care is achieving a personal/social goal with that knowledge.



WindowLicker said:


> Is there a group I can join that I can learn how to do this stuff with?


The internet.



WindowLicker said:


> I need to make things to make my life better, so I can be lazier. So I can pretend my house is a robot that works for me.


Indeed... Pretend.



WindowLicker said:


> I'm good at math, and business, and very resourceful/motivated. I guess the level of how good I want to be is ability to build and program my own jukebox good, that would suffice.


Then, all you want to be is a 16 years old Minecraft player.



WindowLicker said:


> Can someone point me in the right direction?


Stay away from digital miracles and waste some time on analog struggles.

Start with building a shortwave radio... Preferably a regenerative one, instead of an Arduino MP3 player or whatever. It's not "that" hard and you will learn "many" things.


----------



## Alpha_Orionis

Try Codeacademy. https://www.codecademy.com/


----------



## WindowLicker

yet another intj said:


> I agree... About the academical snobbery... But... Getting involved with a discipline to "fuel your ideas" is bullshit. If you have ideas, just be what you are, an entrepreneur. You don't have to learn the atomic structure of a water molecule just because you want to take a shower. Messing with the practical problems of theoretical shit is already a pseudo-autistic venture and you will end up frustrated if all you care is achieving a personal/social goal with that knowledge.
> 
> 
> The internet.
> 
> 
> Indeed... Pretend.
> 
> 
> Then, all you want to be is a 16 years old Minecraft player.
> 
> 
> Stay away from digital miracles and waste some time on analog struggles.
> 
> Start with building a shortwave radio... Preferably a regenerative one, instead of an Arduino MP3 player or whatever. It's not "that" hard and you will learn "many" things.


 @yet another intj Did you even read my last post or notice I made this thread two years ago? I'm a robotics teacher now. 

This is something really common I've noticed about kids who think they're too smart to learn anything. They don't think they have to listen and they come out looking like a fool.


----------



## yet another intj

WindowLicker said:


> @_yet another intj_ Did you even read my last post or notice I made this thread two years ago? I'm a robotics teacher now.


----------



## WindowLicker

[Deleted] to maintain a happy atmosphere in this thread.

Also I noticed its been almost exactly 2.5 years since I first made this thread. Yay for personal growth achievement!


----------



## WindowLicker

X2 post


----------



## Father of Dragons

That is quite an impressive and motivational outcome. If you don't mind me asking, what was the trajectory of those 2 years? Did you self teach yourself? Did you go back to school? I ask because I've decided I want to work in tech and I'm deciding between piling on the MOOCS/teaching myself or going back to get a formal(and much more expensive) masters.


----------



## WindowLicker

Father of Dragons said:


> That is quite an impressive and motivational outcome. If you don't mind me asking, what was the trajectory of those 2 years? Did you self teach yourself? Did you go back to school? I ask because I've decided I want to work in tech and I'm deciding between piling on the MOOCS/teaching myself or going back to get a formal(and much more expensive) masters.


In case you ever return to this, I'm wondering how this turned out for you.
My answer is that part of those 2 years I was in college and robotics club which was guided, but self-taught. I think it's a lot easier to get your foot into the door with a degree and I plan to get mine eventually. What part of tech do you want to work in?


----------

