Page 1 of 2 [ 22 posts ]  Go to page 1, 2  Next

FedUpAsp
Snowy Owl
Snowy Owl

User avatar

Joined: 16 Jun 2013
Age: 48
Gender: Female
Posts: 149

14 Jul 2013, 8:12 am

What is the best programming language for a beginner to learn? I want to go from zero to writing disabled-accessibility programs for Linux and BSD. No experience with either.



truth15ful
Raven
Raven

User avatar

Joined: 1 Aug 2011
Age: 28
Gender: Male
Posts: 103

14 Jul 2013, 1:01 pm

I started with Blitz3D. Their program has a free "Demo" version that never expires and an excellent command reference. Definitely not the fastest or most versatile language but easy to learn.



Solidus
Tufted Titmouse
Tufted Titmouse

User avatar

Joined: 31 Jul 2012
Age: 38
Gender: Male
Posts: 40
Location: Canada

14 Jul 2013, 1:03 pm

I would suggest Python, it's easy to learn and well-documented, and still powerful.



Kurgan
Veteran
Veteran

User avatar

Joined: 6 Apr 2012
Age: 35
Gender: Male
Posts: 4,132
Location: Scandinavia

14 Jul 2013, 1:55 pm

First and foremost, it should be an object-oriented and turing complete language. The former because it makes the programming much more intuitive--the latter because it can be used on an intermediate and professional stage as well as a beginner stage. Three good choices are C++, C# and Java. In any case, TheNewBoston has great video tutorials explaining most of the stuff you need to know.

You might want to learn boolean algebra if you don't already know it, though. This is incredibly useful when you're programming.



0bey1sh1n0b1
Snowy Owl
Snowy Owl

User avatar

Joined: 8 Jul 2013
Age: 39
Gender: Male
Posts: 138
Location: DMV Area

14 Jul 2013, 8:15 pm

I learned with Java. Schools love to use that as a teaching language. Google NewBoston that guy has great tutorials. Also Sketch by MIT although clearly a kids program will give you a good idea of programming principles. Also Microsoft has their own SmallBasic designed to teach beginner on the fundamentals of Basic and it also has a translator to translate the code into Visual Basic code. Pretty neat stuff good luck with your learning.

Haha looks like someone beat me to the NewBoston tutorials ^^^



Last edited by 0bey1sh1n0b1 on 14 Jul 2013, 8:17 pm, edited 1 time in total.

0bey1sh1n0b1
Snowy Owl
Snowy Owl

User avatar

Joined: 8 Jul 2013
Age: 39
Gender: Male
Posts: 138
Location: DMV Area

14 Jul 2013, 8:16 pm

Solidus wrote:
I would suggest Python, it's easy to learn and well-documented, and still powerful.


It's a good learning language with it is not a programming language. It is scripting.



Tomatoes
Toucan
Toucan

User avatar

Joined: 25 Jun 2012
Gender: Male
Posts: 264

15 Jul 2013, 1:53 am

If you aim to write disability software for Linux and the BSDs you should learn C and/or C++ because I suppose you'll have to make software interfacing with the user interface, but I don't know what you mean exactly by disability software. Shinobi suggested Visual Basic and/or SmallBasic to learn programming. I think it would be a good choise as a first language, if you use Mono.
Programming is another form of mathematics. It is like learning to ride a bicycle. Also C/C++ is hard compared to Visual Basic. In the former you'll have to manage memory manually.



ruveyn
Veteran
Veteran

User avatar

Joined: 21 Sep 2008
Age: 87
Gender: Male
Posts: 31,502
Location: New Jersey

15 Jul 2013, 3:08 pm

Whatever happened to BASIC?



Kator
Emu Egg
Emu Egg

User avatar

Joined: 12 Jul 2013
Gender: Male
Posts: 4
Location: Casablanca, Morocco

15 Jul 2013, 4:24 pm

I also suggest BASIC

That is how I, and many others started. It was designed for kids to learn programming, for kids who don't know anything about computers. As an adult probably you can learn faster than a child can.
It had a great culture decades ago, with microcomputers for children, which one just turns on, and a BASIC prompt appears. The newcomer can just immediately type BASIC commands, or programs, without knowing where those variables are stored.
I would suggest moving to a practical language later, maybe after a month, or a few months of BASIC on a C64 ( or a C64 emulator ).
This month was about 5 years for me, but I was at elementary school.
Anyways, I just can't imagine starting with Java, or C++, or Python, if you have no idea what is going on in the background. As you said, "I want to go from zero".



dcj123
Veteran
Veteran

User avatar

Joined: 2 Sep 2009
Gender: Male
Posts: 10,796

15 Jul 2013, 7:06 pm

C is easy enough and its closer to the hardware than things like Python and Java. The problem with C is you probably won't be writing a GUI with it very easily where as Java has the swing libraries that make writing GUIs easy. I know a little C, Perl, Python, Java and html but I don't fancy myself a programmer. Most of my apps are small time stuff but I did write a GUI calculator in Java using GridBagLayout, my pride and joy work.

Also this link looks okay for learning C.

Also here is a sample test program in C so you get an idea for it, comments are the lines with //. Its how I understand C to work so there maybe errors.

Quote:
//Start of every program, function main
main()

//First Bracket
{

//Initializes and defines integer x as 2
int x = 2;

//Initializes the integer sum
int sum;

//Defines the integer sum to x + x or 2 + 2
sum = x + x;

//Prints integer sum, %d calls to integer sum which is obviously 4 where as \n simply skips a line
printf("%d.\n", sum);

//Returns 0 for function main
return 0;

//Last Bracket
}



0bey1sh1n0b1
Snowy Owl
Snowy Owl

User avatar

Joined: 8 Jul 2013
Age: 39
Gender: Male
Posts: 138
Location: DMV Area

15 Jul 2013, 8:51 pm

If you really want to get fun with programming you can looking into Arduino. This is a great hardware/programming platform ranging from beginners to even advance levels. Another interesting microcontroller is nerdkit.



Kurgan
Veteran
Veteran

User avatar

Joined: 6 Apr 2012
Age: 35
Gender: Male
Posts: 4,132
Location: Scandinavia

15 Jul 2013, 9:02 pm

Kator wrote:
I also suggest BASIC

That is how I, and many others started. It was designed for kids to learn programming, for kids who don't know anything about computers. As an adult probably you can learn faster than a child can.
It had a great culture decades ago, with microcomputers for children, which one just turns on, and a BASIC prompt appears. The newcomer can just immediately type BASIC commands, or programs, without knowing where those variables are stored.
I would suggest moving to a practical language later, maybe after a month, or a few months of BASIC on a C64 ( or a C64 emulator ).
This month was about 5 years for me, but I was at elementary school.
Anyways, I just can't imagine starting with Java, or C++, or Python, if you have no idea what is going on in the background. As you said, "I want to go from zero".


I went from zero with Java. Because of the automatic garbage collection, the Swing library and various other feautures, it's suprisingly easy to learn. The only tricky part in the beginning was understanding how classes worked.



FedUpAsp
Snowy Owl
Snowy Owl

User avatar

Joined: 16 Jun 2013
Age: 48
Gender: Female
Posts: 149

16 Jul 2013, 4:25 am

These are all great suggestions. I want to program a text to speech program for the Linux command line as well as a high quality magnifier for multiple GUIs. An ambitious project, but one I actually need.

Seems I need a background in algebra. Any other 'pre-programming' stuff I should know? Like flowcharting, etc?



0bey1sh1n0b1
Snowy Owl
Snowy Owl

User avatar

Joined: 8 Jul 2013
Age: 39
Gender: Male
Posts: 138
Location: DMV Area

16 Jul 2013, 6:14 am

FedUpAsp wrote:
These are all great suggestions. I want to program a text to speech program for the Linux command line as well as a high quality magnifier for multiple GUIs. An ambitious project, but one I actually need.

Seems I need a background in algebra. Any other 'pre-programming' stuff I should know? Like flowcharting, etc?


Flow charts can help with pseudo coding but it is not a must. Also look into pseudo code because this helps out big time in the long run.



youwho
Tufted Titmouse
Tufted Titmouse

User avatar

Joined: 24 May 2010
Age: 41
Gender: Male
Posts: 40

17 Jul 2013, 8:14 am

I suggest starting with Python too.
If you are starting from scratch start with one of Zed Shaw's guides.

It let's you start from the very basics without considering objects until you want to,
while allowing you to increase your understanding gradually.
Once you have a solid understanding of types, objects and classes you can more easily
transfer your knowledge to other 'commercial' languages like C# and Java if you like.

The division between what's 'programming' and what's 'scripting' is diminishing,
a huge amount of professional programming work is now web development,
which is being done more and more in Python, Ruby, etc.
The modern web servers are easily fast enough to run scripting languages to generate pages
and the developer productivity increases are worth the cost.

Python has thousands of existing free libraries for doing any kind of task you can imagine,
and a massive community of developers you can learn from.
There are a huge number of free tutorials on the web for learning various libraries and frameworks.

Python is the teaching language of choice for the Raspberry Pi.



dcj123
Veteran
Veteran

User avatar

Joined: 2 Sep 2009
Gender: Male
Posts: 10,796

17 Jul 2013, 10:36 am

FedUpAsp wrote:
Seems I need a background in algebra. Any other 'pre-programming' stuff I should know? Like flowcharting, etc?


Programming is nothing but mathematics once you understand functions, control statements, arrays, pointers and so on. I have found that most programming languages are similar to each other, so picking up a second programming language once you learn one will be easier than the first. Whatever you do, don't start with C++ as you need a good background and C before advancing to C++.