• Welcome to Valhalla Legends Archive.
 

Best language to start with for noobs?

Started by omnispyder, October 01, 2007, 12:19 PM

Previous topic - Next topic
|

omnispyder

Whats the best language youd suggest a noob to start to learn programming?

And if anyone knows the computers that are in cars, what type of programming is used for them either OEM computers or aftermarket ones.
Anyone have any ideas?


brew

#2
C is the best language to start.
The computers that are in cars, do you mean the OBDII diagnostic system? IIRC it handles the valve timing as well. I would imagine it's made in C or C++, just that it uses a specialized compiler (which most likely prints the instructions to a chip, or stores them for execution in a non-volitle EEPROM chip).
<3 Zorm
Quote[01:08:05 AM] <@Zorm> haha, me get pussy? don't kid yourself quik
Scio te esse, sed quid sumne? :P

Yegg

Quote from: brew on October 01, 2007, 02:13 PM
C is the best language to start.
The computers that are in cars, do you mean the OBDII diagnostic system? IIRC it handles the valve timing as well. I would imagine it's made in C or C++, just that it uses a specialized compiler (which most likely prints the instructions to a chip, or stores them for execution in a non-volitle EEPROM chip).

No.
C is not the best language. You also didn't explain why C would be the best. There is no "best" language to start with, not every person learns in the exact same way as the other.
The "computers" used in cars could be made in any language. There is no reason to assume C/++.

Camel

OBD-II describes the protocol and the shape and pins on the connector; it'd be possible to implement it in virtually any language. I suspect most (if not all) use C for the car's ECU and other computer systems, since it's the most versatile for embedded systems (because such a large variety of platforms are supported by existing compilers).

C is not the best language for learning. To someone who's never seen code before, it looks cryptic at best. If you're just looking to get familiar with programming concepts, I'd suggest looking in to VB. Please don't get attached, though.

@brew: All EEPROM is non-volatile. Flash is cheaper than EEPROM for apreciable storage capacity, and it's hard to even find a chip of EEPROM large enough to store any significant amount of executable code. It has never been, in the time I've been a part of the industry, cost effective to use EEPROM to store code.

brew

Oh please, name one car you know that uses flash memory instead of EEPROM. (I mean, not your brand-new luxury model with an navigation system etc. He seems to be interested in tuner cars) I believe this area is UL's expertise, maybe he knows?
<3 Zorm
Quote[01:08:05 AM] <@Zorm> haha, me get pussy? don't kid yourself quik
Scio te esse, sed quid sumne? :P

omnispyder

Well Id like to start with a languge doesnt matter what, I would like to be able to make my own chatbots instead of relying on someone else todo the work for me and nagging them to fix or try different things, when I could do it myself.

I however do not want to learn programming to make a bot, but in the end I would like to use the skill for makeing a after market computer for sports / race cars.
maybe that will be more specific if you can point me in the right direction.


This might be a little off topic but I own 2 toyota supras (if you know about these import cars read on...) 1 is a 89 supra and the other is a 88.
I know how to use CADD to draft / design exhaust systems but I want to get more into the computer side of things and make something revolutionary in the end with this beasts.  My 89 is black with original paint and is getting a 2jz gte swap into it with a single T88 turbo conversion.

In the end I dont have alot of time / $ to goto school and take this so I figure Im interested in it more then enough to learn it on my own and just need a little help from whoever can doso.  Thanks and much appreciation for those who have replied and continue todo so on this topic.

ty DA

brew

#7
Quote from: omnispyder on October 01, 2007, 03:38 PM
I however do not want to learn programming to make a bot, but in the end I would like to use the skill for makeing a after market computer for sports / race cars.

To make a bot requires extensive knowledge of TCP protocol, BNCS protocol, and parsing data, among other things such as creating/manipulating a GUI. This all requires decent knowledge of the win32 api (assuming this program is for a win32 based system).
I'm sorry, but next to nothing you will learn in battle.net bot development will help you to create an embedded program for whatever part of this automobile is computer controled and complex enough to require an actual programming language to make it. The actual program within these valve timing systems (the only part i can think of that requires a 3rd party product to interact with the car to tune for better performance) is minimal in size and complexity, but I do see where you're going with this.
<3 Zorm
Quote[01:08:05 AM] <@Zorm> haha, me get pussy? don't kid yourself quik
Scio te esse, sed quid sumne? :P

Banana fanna fo fanna

If you are looking to make a chip for cars, you're going to want to go for embedded systems programming - C, assembler (generic concepts as well as for each architecture you're working on), and just low-level knowledge of how computers and operating systems work.

With that said, to start out you'd probably want to work with either Scheme, Java, or (my favorite) Python to get the basic concepts down. You _could_ jump in with C, but it takes longer to accomplish many tasks in C than it does in other languages.

Barabajagal

#9
Best way to explain languages:
QuoteC
You shoot yourself in the foot.

C++
You accidentally create a dozen clones of yourself and shoot them all in the foot. Providing emergency medical assistance is impossible since you can't tell which are bitwise copies and which are just pointing at others and saying, "That's me, over there."

JAVA
After importing java.awt.right.foot.* and java.awt.gun.right.hand.*, and writing the classes and methods of those classes needed, you've forgotten what the hell you're doing.

Ruby
Your foot is ready to be shot in roughly five minutes, but you just can't find anywhere to shoot it.

PHP
You shoot yourself in the foot with a gun made with pieces from 300 other guns.

ASP.NET
Find a gun, it falls apart. Put it back together, it falls apart again. You try using the .GUN Framework, it falls apart. You stab yourself in the foot instead.

SQL
SELECT @ammo:=bullet FROM gun WHERE trigger = 'PULLED';
INSERT INTO leg (foot) VALUES (@ammo);

Perl
You shoot yourself in the foot, but nobody can understand how you did it. Six months later, neither can you.

Javascript
You've perfected a robust, rich user experience for shooting yourself in the foot. You then find that bullets are disabled on your gun.

CSS
You shoot your right foot with one hand, then switch hands to shoot your left foot but you realize that the gun has turned into a banana.

FORTRAN
You shoot yourself in each toe, iteratively, until you run out of toes, then you read in the next foot and repeat. If you run out of bullets, you continue anyway because you have no exception-handling ability.

Modula2
After realizing that you can't actually accomplish anything in this language, you shoot yourself in the head.

COBOL
Using a COLT 45 HANDGUN, AIM gun at LEG.FOOT, THEN place ARM.HAND.FINGER. on HANDGUN.TRIGGER and SQUEEZE. THEN return HANDGUN to HOLSTER. CHECK whether shoelace needs to be retied.

LISP
You shoot yourself in the appendage which holds the gun with which
you shoot yourself in the appendage which holds the gun with which
you shoot yourself in the appendage which holds the gun with which
you shoot yourself in the appendage which holds the gun with which
you shoot yourself in the appendage which holds ....

BASIC
Shoot yourself in the foot with a water pistol. On big systems, continue until entire lower body is waterlogged.

FORTH
Foot in yourself shoot.

APL
You shoot yourself in the foot, then spend all day figuring out how to do it in fewer characters.

Pascal
The compiler won't let you shoot yourself in the foot.

SNOBOL
If you succeed, shoot yourself in the left foot.
If you fail, shoot yourself in the right foot.

Concurrent Euclid
You shoot yourself in somebody else's foot.

HyperTalk
Put the first bullet of the gun into the foot of the left leg of you.
Answer the result.

Motif
You spend days writing a UIL description of your foot, the trajectory, the bullet, and the intricate scrollwork on the ivory handles of the gun. When you finally get around to pulling the trigger, the gun jams.


Unix
% ls
foot.c foot.h foot.o toe.c toe.o
% rm * .o
rm: .o: No such file or directory
% ls
%

Paradox
Not only can you shoot yourself in the foot, your users can too.

Revelation
You'll be able to shoot yourself in the foot just as soon as you figure out what all these bullets are for.

Visual Basic
You'll shoot yourself in the foot, but you'll have so much fun doing it that you won't care.

Prolog
You tell your program you want to be shot in the foot. The program figures out how to do it, but the syntax doesn't allow it to explain.

Ada
After correctly packaging your foot, you attempt to concurrently load the gun, pull the trigger, scream and shoot yourself in the foot. When you try, however, you discover that your foot is of the wrong type.

Assembly
You try to shoot yourself in the foot only to discover you must first reinvent the gun, the bullet, and your foot. After that's done, you pull the trigger, the gun beeps several times, then crashes.

370 JCL
You send your foot down to MIS with a 4000-page document explaining how you want it to be shot. Three years later, your foot comes back deep-fried.

Python
You try to shoot yourself in the foot but you just keep hitting the whitespace between your toes.

Dale

Start with Visual basic.

What I did was personally convinent.

Visual Basic -> Python -> HTML/CSS/MySQL/JScript/PHP -> C# -> C++ ->C#

Yegg

Quote from: brew on October 01, 2007, 04:55 PM
To make a bot requires extensive knowledge of TCP protocol, BNCS protocol, and parsing data, among other things such as creating/manipulating a GUI. This all requires decent knowledge of the win32 api (assuming this program is for a win32 based system).

Just a few thoughts.
1) How would you define "extensive knowledge"?
2) You don't need extensive knowledge of BNCS. This would mean you everything about the protocol that is necessary for making a bot without looking up the packet info on BnetDocs or some other site. You could easily make a bot and keep looking to BnetDocs for help.
3) Why would it require Win32 knowledge if you're using a Win32 OS? What about .NET or another framework?

Falcon[anti-yL]

In 3 years of CS in highschool and my first year of CS in college, they just switched from C++ to Java, so maybe you should look into Java as a first programming language.

Yegg

Quote from: Falcon[anti-yL] on October 02, 2007, 09:07 PM
In 3 years of CS in highschool and my first year of CS in college, they just switched from C++ to Java, so maybe you should look into Java as a first programming language.

My Uni also uses Java as opposed to C++ for a lot of the work.

Joe[x86]

#14
Quote from: Yegg on October 01, 2007, 03:01 PM
Quote from: brew on October 01, 2007, 02:13 PM
C is the best language to start.
The computers that are in cars, do you mean the OBDII diagnostic system? IIRC it handles the valve timing as well. I would imagine it's made in C or C++, just that it uses a specialized compiler (which most likely prints the instructions to a chip, or stores them for execution in a non-volitle EEPROM chip).

No.
C is not the best language. You also didn't explain why C would be the best. There is no "best" language to start with, not every person learns in the exact same way as the other.
The "computers" used in cars could be made in any language. There is no reason to assume C/++.

I'm going to assume system level assembly (obviously, for the microprocessor used) for one obvious reason: Who would write a compiler for the car, when it's probably easier to write the code in assembly? The compiler itself would have to be written in machine code, or assembly, and the program is probably easier to write then a compiler.

For a beginning language, I would recommend C#. It's a very clean syntax so it's not (as) easy to get lost in your code, and there are several tutorials out there written by Microsoft. I'd also recommend taking a look at very (I can't stress very enough) basic assembly, to understand how everything is brought together down on the very bottom. There are a few good tutorials out there for assembly as well -- Google for "ASM hello world", and that's probably all you'll need for what you'll want to do. Also, start out with "C# hello world" and once you've understood that, come back. We've got quite a few C# "Merlins" here.
Quote from: brew on April 25, 2007, 07:33 PM
that made me feel like a total idiot. this entire thing was useless.

|