FRIHOST FORUMS SEARCH FAQ TOS BLOGS COMPETITIONS
You are invited to Log in or Register a free Frihost Account!


Which language should I learn during my semester break?






What language?
Java
0%
 0%  [ 0 ]
C
0%
 0%  [ 0 ]
C++
25%
 25%  [ 2 ]
Python
37%
 37%  [ 3 ]
MySQL
0%
 0%  [ 0 ]
RE
0%
 0%  [ 0 ]
.NET
0%
 0%  [ 0 ]
Web dev. stuff
0%
 0%  [ 0 ]
A combination of the above
25%
 25%  [ 2 ]
A language that wasn't mentioned
12%
 12%  [ 1 ]
Total Votes : 8

davidv
Hi,

I'm currently doing a computer science degree, 1st year. My semester break is coming up soon and I thought I might learn a new language during that time or maybe even update my knowledge on some ones I already know a bit about.

The thing is, I'm not sure what language to learn. Maybe you guys can help me decide? These are a couple factors that I need to consider:

Next semester I'll be learning more about Java (to be specific... the data structures in Java) -- maybe more Java?

In 2nd year I'll be learning C also, a few friends will be learning C next semester and they always ask me questions -- maybe get a head start?

Maybe just forget about C and go with C++?

For the past 13 weeks I've been playing around with Python and I really like it -- maybe Python?

In the later years there will be some advanced databases courses. I really like databases and MySQL -- so maybe MySQL?

Regular expressions are fun, they're not so much a language, more of a little language -- maybe I should focus some regex?

The other day my girlfriend gave me this .NET textbook and so I thought, maybe I could learn a bit of that?

Web development stuff like HTML5, CSS, PHP, CGI? I had an assignment to connect to a database using MySQL in Python and then create a web interface in HTML5, CSS and CGI and I found that really easy and fun to play with -- maybe start a website?
jcreus
davidv wrote:
Hi,

I'm currently doing a computer science degree, 1st year. My semester break is coming up soon and I thought I might learn a new language during that time or maybe even update my knowledge on some ones I already know a bit about.

The thing is, I'm not sure what language to learn. Maybe you guys can help me decide? These are a couple factors that I need to consider:

Next semester I'll be learning more about Java (to be specific... the data structures in Java) -- maybe more Java?

In 2nd year I'll be learning C also, a few friends will be learning C next semester and they always ask me questions -- maybe get a head start?

Maybe just forget about C and go with C++?

For the past 13 weeks I've been playing around with Python and I really like it -- maybe Python?

In the later years there will be some advanced databases courses. I really like databases and MySQL -- so maybe MySQL?

Regular expressions are fun, they're not so much a language, more of a little language -- maybe I should focus some regex?

The other day my girlfriend gave me this .NET textbook and so I thought, maybe I could learn a bit of that?

Web development stuff like HTML5, CSS, PHP, CGI? I had an assignment to connect to a database using MySQL in Python and then create a web interface in HTML5, CSS and CGI and I found that really easy and fun to play with -- maybe start a website?


Wow, I can write in nearly all of them so I'll write a review so that you can decide better:

* Java is a great programming language and works great if you have to port it to many platforms. It can also be used for applets and allows doing nearly everything.
* The difference between C++ and C is mainly classes. However, I prefer C. The great point of it is the pretty low level; it does exactly what you told it to.
* Python is definitely my favorite. Fast, easy and clear syntax, a great library... Used by Google and NASA Smile.
* MySQL is also great, really useful if you want to go into websites. Together with PHP it works great. There are also ports to other programming languages.
* Sorry, I don't know .NET Sad.
* Web development is also great, a part from knowing HTML4 and CSS2 it should be time to begin with HTML5 and CSS3 despite their low compatibality between browsers. They are the future! BTW, connecting to databases is IMHO easier in PHP, but for Python MySQLdb also exists.

Hope it helps.
davidv
Thanks, I appreciate your input. Yes, it does help! Smile

Java isn't my favourite language and I honestly, don't like it very much (greatly influenced by my lecture). It's slow and oh my god I really don't like I/O when using Java. I just like how it's entirely built upon an OO structure.

C++ and C are languages that I really want to eventually learn because I'm interested in the whole memory management thing.

Python is also my favourite language! It's a beautiful language so I might be doing a bit more of this. I just learnt what list comprehensions are! It's so awesome!!! Razz

I'm steering towards web development for my upcoming break. I've used both PHP and Python/CGI to create web pages but I want to use CGI cause I'm more familiar with it. Are there any disadvantages/advantages in using CGI over PHP or vice versa? I ask this because I wasn't properly taught how to use PHP during high school and only briefly touched CGI over the past few weeks.
milleja46
I'd recommend python just because it's a very simple language to learn. Plus the syntax is very clean and easy to understand
cybersa
Personally i recommend to learn C++.
It will helpful for all other language.
Fire Boar
Ruby is an absolute joy to use. It's a scripting language, similar to Perl, but much nicer to use and well worth a look.
Bondings
What about actionscript? You can create a simple flash game with it without too much effort.

Otherwise a functional language like Erlang or Haskell? Something completely different from the Java/C/Actionscript/Javascript syntax.
saberlivre
I've heard someone say about Haskell, but still did not understand much about its function and / or usefulness. Does anyone have something to say about it?

Sorry for my English.
milleja46
Well with python it's the BASIC of today(i remember people saying how colleges used to use BASIC to teach programming), so i would think python would help you get a more solid foundation especially since python can be used cross-os(if you don't add in many os dependencies)


EDIT: (plus i wouldn't even consider a .net language, i'd rather me, you, or anyone else learn the languages that aren't based on that just because of the fact if someone wants to use you're program on their OS .net is only availible and only works to my knowledge on windows)
Navigator
Just listen to the force young davidv.
Fire Boar
saberlivre wrote:
I've heard someone say about Haskell, but still did not understand much about its function and / or usefulness. Does anyone have something to say about it?

Sorry for my English.


Haskell is more for learning than for doing. It's a different type of programming, and one of its interesting qualities is how it is quite happy to handle infinity, due to what's called lazy evaluation, which means that it only ever evaluates anything when it absolutely has to. If you want to follow along here, you need to run a Haskell interpreter such as hugs or ghci. I'm using hugs.

For example, countability. First a definition: given sets X and Y, the cartesian product XY is the set of pairs of elements in X and Y. For example, if X = {1,2} and Y = {a,b,c} then XY = {(1,a), (1,b), (1,c), (2,a), (2,b), (2,c)}.

Another definition: sets can be infinite. A set is countable if you can place all the elements in a list. As an example, the set of non-negative integers is countable: a possible list is [0,1,2,3,4,5,6,...]. But the set of all real numbers is not countable (I don't want to go into why).

Let's call the set of all non-negative numbers N. So N = {0, 1, 2, ...}. The set NN is countable - that is, you can get all the elements in a list. You can see that with Haskell. We'll use "take 20" so that we stop after 20, but you can increase the number 20 as much as you want to get more numbers.

First attempt:

Code:
Hugs> take 20 [(x,y) | x <- [0..], y <- [0..]]
[(0,0),(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8),(0,9),(0,10),(0,11),(0,12),(0,13),(0,14),(0,15),(0,16),(0,17),(0,18),(0,19)]


Er... that doesn't work. If we keep going, x is always going to be 0. But we can do it slightly differently.

Code:
Hugs> take 20 [(x-y,y) | x <- [0..], y <- [0..x]]
[(0,0),(1,0),(0,1),(2,0),(1,1),(0,2),(3,0),(2,1),(1,2),(0,3),(4,0),(3,1),(2,2),(1,3),(0,4),(5,0),(4,1),(3,2),(2,3),(1,4)]


There we go. This demonstrates how NN is countable. For any pair of positive numbers, Haskell can tell us that it is part of the list. It just takes longer for bigger numbers.

Code:
Hugs> elem (1302,439) [(x-y,y) | x <- [0..], y <- [0..x]]
True


This is just one example of how Haskell's use of infinite lists might be helpful in demonstrating mathematical problems.

As an aside, this gives us the interesting result that the set of all fractions is countable. Ignoring negative numbers for a moment (there are twice as many negative numbers as positive numbers, that doesn't affect countability), all fractions are made up of an integer on the top and an integer on the bottom. Each pair (x,y) corresponds to a fraction x/y, and we know now that the set of all pairs (x,y) is countable. This proves that not every real number can be written as a fraction.


Another aside: Haskell's definitions are interesting as well. You've seen "take" and "elem" - these can actually be defined explicitly as follows (here by convention "xs" is a list, "x" is a single element):

Code:
take 0 xs = [] -- Base case: finished taking elements.
take n [] = [] -- Base case: list is empty
take n (x:xs) = x:(take (n-1) xs) -- Recursion: list has elements and we want to take some.

elem e [] = False -- Base case: list is empty
elem e (e:xs) = True -- Recursion: e has been found - return true
elem e (x:xs) = elem e xs -- Recursion: e not found but list not empty - keep going.


The above is what Haskell scripts typically look like: a series of definitions of functions, usually with multiple definitions for the different cases.
saberlivre
Thanks Fire Boar for your reply.
davidv
Finally the semester break has come and I really appreciate the input you guys gave me. I think I'm going to play around with a whole range of different languages however focus on Java and Python the most.

If I have any questions I'll be sure to post on this lovely forum Smile
xSteam
Well, I've started with algorithm, then C, C++, Java and now PASCAL.
They're all basically the same... After you learn a language it's so much easier to learn any other language. So, first of all I would try learn more about algorithm and then I'd give C a try and slowly starting to move into C++.
Peterssidan
xSteam wrote:
Well, I've started with algorithm, then C, C++, Java and now PASCAL.
They're all basically the same... After you learn a language it's so much easier to learn any other language. So, first of all I would try learn more about algorithm and then I'd give C a try and slowly starting to move into C++.

I agree that knowing one language makes it easier to learn another but it is not always easy. A problem should not always be solved the same way in all languages. This has much to do what paradigms the languages support and makes use easy.
A problem with learning C before learning C++ is that most C is valid C++ code. This allows C programmers to write C++ code that looks like C. A C++ programmer that do it the C++ way will do it very different than the C programmer. The C programmer needs to put some extra effort into learning the C++ stuff not because he has to but because otherwise he will not learn C++.
dragoescovilha
Learn C, it's the base for a lot of other programming languages, a good ANSI C programmer easily adapt to other languages.

"The C Programming Language" written by Brian Kernighan and Dennis Ritchie is a must have for developers.
milleja46
dragoescovilha wrote:
Learn C, it's the base for a lot of other programming languages, a good ANSI C programmer easily adapt to other languages.

"The C Programming Language" written by Brian Kernighan and Dennis Ritchie is a must have for developers.

Hmm, i never thought of it that way, i may have to check that book out since i am looking to be a software/web/game developer of some sort after high school and college
raneez_n
I recommend you to start from the scratch.

start with c or c++ and then go for java, because java is such a powerfull language. its like ocean , you got to study a lot. And i havn't found any other language with more security
Peterssidan
raneez_n wrote:
start with c or c++ and then go for java, because java is such a powerfull language. its like ocean , you got to study a lot. And i havn't found any other language with more security
Java is probably easier than C++. Yes Java has a huge standard library and knowing it all is impossible but c++ has many language features that Java don't have and you need much more discipline to be a good c++ programmer.
Related topics
Creating a new Operating System
Oh Gods please stop it!
Which script is good to learn?
NIGHTWISH!
Which holiday do you celebrate?
Wolf: Enemy Territory
My first Visual Basic program!
Any Musicians Out There?!
Car Audio
Did you know?
how did you learn about html, php or other languages???
Creating a Search Script with PHP for MySQL
Coding Challenges.
China
Reply to topic    Frihost Forum Index -> Scripting -> Others

FRIHOST HOME | FAQ | TOS | ABOUT US | CONTACT US | SITE MAP
© 2005-2011 Frihost, forums powered by phpBB.