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

nyxjord
Veteran
Veteran

User avatar

Joined: 24 Jun 2014
Age: 34
Gender: Female
Posts: 819
Location: Between 2 corn fields

07 Nov 2014, 4:13 pm

How is Java when first learning to program? I am a CS major but have only ever written unix script (for running in linux terminal). I am officially learning my first programming language next semester in my CS II class. We start with Java. Is that a good foundation for beginning to program?


_________________
--Nyx-- What an astonishing thing a book is. Across the millennia, an author is speaking clearly and silently inside your head, directly to you... Carl Sagan


analee
Butterfly
Butterfly

User avatar

Joined: 2 Oct 2014
Age: 26
Gender: Female
Posts: 13
Location: Florida

07 Nov 2014, 4:46 pm

The best order to learn programming languages in (in my opinion) is HTML, CSS, then JavaScript.
HTML creates the basic skeleton of the webpage, CSS decorates it, and Java does the animations and similar.



Variadic
Hummingbird
Hummingbird

User avatar

Joined: 15 Oct 2014
Age: 55
Gender: Male
Posts: 18
Location: Dublin, CA

08 Nov 2014, 4:55 pm

nyxjord wrote:
How is Java when first learning to program?


It's good enough, particularly if you want to make a living as a programmer. By the time you finish your undergraduate career should should also be fluent in C and Python (or Ruby), have a nodding acquaintance with C++ and assembly, and you should have done something difficult in Haskell, Prolog and Lisp. If you're interested in getting into data-intensive work and/or stats, R is a must. If you're doing math, pick up as much LaTeX as you need. And knowing your way around a bash shell script will make your life much, much easier. I don't do any web design work, so I can't tell you what's useful there.

In a way, your first language isn't nearly as important as your third language (and it's not which language you know, it's the ability to bring several different metaphors to bear on a problem and pick the most appropriate, rather than using the one-size-fits all approach).


_________________
"We are tied down to a language that makes up in obscurity what it lacks in style." --Tom Stoppard


stavrogin
Tufted Titmouse
Tufted Titmouse

User avatar

Joined: 19 Jan 2014
Gender: Male
Posts: 27

11 Nov 2014, 1:55 pm

I don't think that java is the best programming language to start with. however, the long-standing debate about which should be considered the best programming language to learn as first is a quite overrated issue: maybe becoming familiar with java from scratch should require some months more (ore weeks, it depends on your skills) than achieving the same level with python, but once you'll accomplish this goal and you'll go ahead, the question about which was your first programming language will never matter at all. by the way, I suggest you to glance at: http://see.stanford.edu/see/courseinfo. ... 6adcae1111



drh1138
Velociraptor
Velociraptor

User avatar

Joined: 2 Dec 2012
Gender: Male
Posts: 498

11 Nov 2014, 3:08 pm

analee wrote:
The best order to learn programming languages in (in my opinion) is HTML, CSS, then JavaScript.
HTML creates the basic skeleton of the webpage, CSS decorates it, and Java does the animations and similar.


Of those three, only JavaScript is an actual programming language, and the other two are only relevant in the domain of web design.

I'd say Java is okay, but there are a lot better options. If you're smart enough to use Linux and script for bash, you'd probably want to look into C (and perhaps C++) at some point. I hear lots of praise for Python and Lua as a starting language.

Really though, the language used is secondary to the method and practice.



nyxjord
Veteran
Veteran

User avatar

Joined: 24 Jun 2014
Age: 34
Gender: Female
Posts: 819
Location: Between 2 corn fields

11 Nov 2014, 3:55 pm

Thanks for the responses. We have actually started learning this past semester with "blocks" editor-- we use appinventor and make programs with that. It's suppose to help make visualizing the logic of a program, easier. However, I don't always understand what the heck we are doing so I am looking more toward the future and the first written language we will learn is Java. BTW, I am wanting to get into computer network/ security and encryption-- Penetration Testing etc etc. IDK what language would be best suited for that.

If you want to check it out, this is the website we are using to learn programming this semester. App Inventor

analee wrote:
If you're smart enough to use Linux and script for bash, you'd probably want to look into C (and perhaps C++) at some point. I hear lots of praise for Python and Lua as a starting language.


As a matter of fact, I actually have Linux Mint on my personal computer that I use constantly. I have used terminal before and really love using bash.. However, we aren't taught anything like that in CS classes because of course they are training us to work with the most common software-- which would be Windows-- and how to put together API's and run Android Apps. So anything Linux related is pretty much ignored except for one optional class in your junior year. So C is similar to Bash?


_________________
--Nyx-- What an astonishing thing a book is. Across the millennia, an author is speaking clearly and silently inside your head, directly to you... Carl Sagan


SweetTooth
Snowy Owl
Snowy Owl

User avatar

Joined: 7 Oct 2014
Gender: Male
Posts: 148
Location: The Netherlands

13 Nov 2014, 12:48 pm

nyxjord wrote:
So C is similar to Bash?


Not really. C is a compiled language. Your source code is first compiled to machine-readable code, which may then be executed. Bash is a command line interpreter, which processes each line of input directly after it is entered. Java works yet differently: Your source code is first compiled to so-called byte code, which can then be executed on a "virtual machine". Every operating system which runs such a virtual machine is able to run your byte code, which explains Java's cross platform compatibility.

I wish I had taken more computer science classes, then I would be able to explain this better.

P.S. As far as I can judge this, I think learning Java as a first language is just fine.



drh1138
Velociraptor
Velociraptor

User avatar

Joined: 2 Dec 2012
Gender: Male
Posts: 498

13 Nov 2014, 2:56 pm

nyxjord wrote:
So C is similar to Bash?


No, very different.

However, if you program in C against the POSIX API you'll notice that there is a high correspondence between terminal commands in the Linux userland and system and library calls in POSIX and the Linux kernel, either with identical names or with logically identical functionality. Many of these terminal commands are little more than an interactive live-running handle for these system calls. Which, when you think about it, is all a terminal (and its supporting userland) really is: a live, interactive window to your OS's kernel and library.

Examples: check sections 8 and 2 of the man pages for chroot, and the same for mount. The section 8 pages are for the userland commands, and those in 2 are for the kernel syscalls.

If it's something that interests you, I'd referr you to Michael Kerrisk's 'The Linux Programming Interface'. It's the book I learned from. It explains in pretty good detail how a Linux system does what it does. You'll still need to know some C, but if as knowledgeable as you seem to be I don't think you'd have much trouble with it.



MorganFTL
Tufted Titmouse
Tufted Titmouse

User avatar

Joined: 15 Nov 2014
Gender: Male
Posts: 41

16 Nov 2014, 5:49 pm

Personally I think Java is a good choice for a first language.. it will be tough since its designed to be as flexible as possible but once its learned depending on if you want to go the direction of standalone compilations or into web work it kind of sits between them.

From Java I feel you can head toward C and its different flavors or VB if your a bit masochistic without feeling too lost and you can also head in the other direction towards PHP, HTML, etc and still see familiar things.


_________________
I run a Youtube gaming channel to raise money for charity at http://www.youtube.com/user/MorganFTL


slenkar
Veteran
Veteran

User avatar

Joined: 25 Apr 2014
Gender: Male
Posts: 1,146
Location: here

16 Nov 2014, 9:04 pm

I would learn something simpler first,
basic or php



MorganFTL
Tufted Titmouse
Tufted Titmouse

User avatar

Joined: 15 Nov 2014
Gender: Male
Posts: 41

16 Nov 2014, 9:39 pm

slenkar wrote:
I would learn something simpler first,
basic or php


Basic is practically useless today and PHP is actually pretty hard since you have to be very security conscious and aware of its bugs and exploits if you ever intend to actually use anything you write.


_________________
I run a Youtube gaming channel to raise money for charity at http://www.youtube.com/user/MorganFTL


slenkar
Veteran
Veteran

User avatar

Joined: 25 Apr 2014
Gender: Male
Posts: 1,146
Location: here

17 Nov 2014, 5:07 pm

Yeah I agree about PHP, wasn't thinking when I suggested it.

Basic however got me into programming, it allowed me to play with arrays strings and general logic before trying to learn some language with more features.



MorganFTL
Tufted Titmouse
Tufted Titmouse

User avatar

Joined: 15 Nov 2014
Gender: Male
Posts: 41

18 Nov 2014, 2:55 pm

slenkar wrote:
Basic however got me into programming, it allowed me to play with arrays strings and general logic before trying to learn some language with more features.


Basic was my first language as well but I found it wasn't all that helpful when switching to a more advanced language as very little of it seemed to translate. I felt I would have been better off using something like C++ or java first and just staying away from the extra features until I had the basics down.


_________________
I run a Youtube gaming channel to raise money for charity at http://www.youtube.com/user/MorganFTL


nopy4869
Hummingbird
Hummingbird

User avatar

Joined: 3 Dec 2014
Age: 29
Gender: Male
Posts: 19

08 Dec 2014, 7:15 am

Me personally, I started off with C. What it lacks in approachability it makes up for in the fact that it lets you control a lot more finely how your program acts. Generally speaking, the more removed the programming language you're using is from machine code, the less room there is for optimization and fine tuning. Although, I am the kind of guy who'd rather write his own game engine that use an already established one (at least for 2D games). What you learn by picking up C is a great deal of the basics that programming languages are based on in addition to something powerful that you can use to write pretty much anything. With the right libraries you can rule the world! ;D


_________________
What do you do when you live in a shoe and you ain't got a sole at all?


Kurgan
Veteran
Veteran

User avatar

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

08 Dec 2014, 9:26 am

You can use inline assembly in C++ for fine tuning. Well-optimized console games make much more use of this than computer games.


_________________
“He who controls the spice controls the universe.”


ruveyn
Veteran
Veteran

User avatar

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

09 Dec 2014, 6:28 pm

Basic is simpler.