Jump to content

Recommended Posts

There are still a few things I'd like to learn in PHP, but I think I have a strong grasp of the language (been programming in PHP for a year).  The other thing I want to learn is building SOAP applications on both ends and I've ordered some books on the matter.  I also want to solidify my MySQL knowledge and have ordered a book on Intermediate to Advanced MySQL stuff and one dedicated to stored procedures.  The only other language I know is javascript, mainly Ajax implementations.  I still have a ways to go with that, but I am pleased with what I've learned of Ajax in 6 months.  I'm a beginner-to-intermediate user in Linux, but I am by no means married to a platform.

 

What I am wondering is what would be the next best language to learn.  I am a web developer and like web development and I have virtually no experience with any other languages.  Any ideas?  I'd like to find one that will give me the best return on my investment  (salary/career-wise and making me a better programmer).

Link to comment
https://forums.phpfreaks.com/topic/86243-want-to-learn-another-language/
Share on other sites

Learn c.

 

Then learn about and implement various abstract data types in c.  Then move on to algorithm analysis.

 

You can do that in 6 months or less and would be greatly better off for it IMO.  Many, many people, especially around this forum, are likely to disagree with me though.

The only reason I would disagree with your roopurt18 is because C is not object oriented. I don't know if s0C0 understands OOP, but it would be the next fundamental thing to learn in my opinion.  If you plan to stick with only web programming, I suggest you learn another web programming langauge if you really insist on learning.  As suggested, you can try PERL, Python, or you can dive into the .net world and trying something like C#.

No one keen on Ruby?

 

I am! Ruby was the next step for me after php. Once you learn the syntax you will find that most other languages seem really long winded.

 

The next language that I plan on learning is server side javascript with rhino and after that maybe groovy.

The only reason I would disagree with your roopurt18 is because C is not object oriented.

 

Which is precisely why I recommend it over c++.

 

IMO, everyone should be familiar with at least one compiled language and one procedural language; c is both.  If you look at the big picture, c is the best language there is.

 

  • c is compiled so it's faster than snot
  • c gives you control over the hardware
  • c supports inline assembly when necessary
  • There isn't a program you can't write in c

 

Writing programs in c will make anyone a more careful programmer.  Having to deal directly with strings, pointers, a polluted global namespace, etc. force you to really think about what you're doing.  And once you can write priority queues, hash tables, and auto-balancing binary search trees in c such that they're perfect programs (no memory-leak, highly optimized algorithms, etc.) there isn't a program you can't write in any other language (as long as the language supports it).

 

c has its shortcomings and dealing with them will give anyone a greater appreciation for the work that occurs behind the scenes in other languages.

 

If c is your foundation, there are many more light bulbs that go off as you encounter things in other, higher level languages.  Or, looking at it another way, if you're young and relatively new to programming, then you've got the time to learn a language as difficult as c.  It won't be directly applicable to most of what you do as a programmer, I myself haven't written any c code in 6 or 7 years, but the experience and knowledge you gained while learning it stay with you forever.  And c is arguably the hardest language to learn that bears any resemblance to today's most popularly used languages.  Just MO.

I'd just like to say that I HATED working with pointers.  Some things are better done for you. 

 

You do make good points, and it is a great foundation for any serious programmer.  But you have to put things into perspective. Is it really necessary to get down and dirty to make some simple web applications and interfaces.  It all depends on what you want to do with your skills. 

I'd just like to say that I HATED working with pointers.  Some things are better done for you. 

 

Hehe, they can be tricky.

 

As for the "having things done for you," it depends on the application.  In web development, I agree.  We deal with so much text processing a language like c would just slow us down, which is why it's not used (although it is used under the hood).

 

But you are better for the experience.  For instance, you could answer the question, "How come a large number of concatenations of large strings has potential to perform poorly?" better than someone who has never dealt directly with memory.

 

Most universities have stopped using c, or even c++ as starting languages; Java seems to be the norm now.  Tech-schools will stick with whatever is the current buzz and that certainly isn't c or c++.  I just shudder at the thought of being a senior in an industry flooded by people who don't even know how memory works 10 years from now.

You want to learn about memory and CPU, then dive into assembly.  I only took 1 assembly class which started pretty easy but quickly became something I never wanted to bother with. 

 

The first programming class I took in college was C++, but we really only programmed C syntax.  We quickly moved to Java for OOP and data structures, but even in java we only  created 1 or two GUI programs. 

Most universities have stopped using c, or even c++ as starting languages; Java seems to be the norm now.  Tech-schools will stick with whatever is the current buzz and that certainly isn't c or c++.  I just shudder at the thought of being a senior in an industry flooded by people who don't even know how memory works 10 years from now.

 

Hmm, is that the case throughout universities in the US, including the better ones? I've just applied for Computer Science in the UK, and it seems that most still teach C in the first year, although perhaps alongside Java.

 

Quite a lot of them use Haskell as a starter language too - apparently it's good for teaching. Anyone happen to have any experience of that?

Most universities have stopped using c, or even c++ as starting languages; Java seems to be the norm now.  Tech-schools will stick with whatever is the current buzz and that certainly isn't c or c++.  I just shudder at the thought of being a senior in an industry flooded by people who don't even know how memory works 10 years from now.

 

Hmm, is that the case throughout universities in the US, including the better ones? I've just applied for Computer Science in the UK, and it seems that most still teach C in the first year, although perhaps alongside Java.

 

Quite a lot of them use Haskell as a starter language too - apparently it's good for teaching. Anyone happen to have any experience of that?

 

In my Computer Science course, C and C++ are postponed until after your first year. Java was just an easy way to teach the basic concepts and techniques, and then they really teach you what you're doing in your second through fourth years.

You want to learn about memory and CPU, then dive into assembly.

I agree that assembly will teach better than anything about how programs really work, but I think it's too far removed from currently used languages to be practical.  At least c supports commonly used programming concepts such as variables, functions, etc.  BTW, I do have between 6 and 9 months of assembly programming from various classes I took in college; by far the hardest program I ever wrote was a priority queue in assembly.

 

An additional note to the OP, c, c++, PHP, Java, etc. are all basically the same class of language.  If you want to learn something totally different, look into prolog (<shudder>) or ML.

 

Also, you don't necessarily have to learn a new language to become a better programmer.  Lot's of things are standard across languages (functions, variables, etc.)  A good exercise to becoming a better programmer is to challenge yourself with exercises.  I could come up with a couple of exercises for you, or the community in general, if anyone was interested.

 

@ginger

I attended UC Santa Cruz and Cal State San Marcos (both in CA, United States).  UCSC taught c and only c, but by my third year it was planned to start using Java for all incoming CS students.  CSUSM used c++ primarily, but there was also talk of switching to Java for incoming students IIRC.  Also, I did have a few high school friends who went to various other universities, most of them appeared to learn Java in the first year.  My sample size is relatively small, but moving to higher level languages that bury the details does seem to be the trend.  I applaud any university or tech school that uses c (or c++ used procedurally) as the starting language.  Honestly, web development is such an easy money-maker I don't foresee myself doing this, but if I wanted to work in an entirely different industry, I would be able to do so because of my background.  With my degree and experience, I could apply for an entry-level, and probably most intermediate-level, position(s) in any industry.  "Yah, I can make dynamic web sites.  Oh, you guys need a programmer for a new line of house-hold appliances? Yah I can do that too.  Your shuttle software isn't working?  I could take a look at it."  It just gives you more options.

I'd love to hear some of those exercises.

 

Me too.

 

Interesting information there. After a bit more digging, it looks like i was wrong; Java is indeed used as the starter language at most of the universities i applied too. Having said that, the first language you use at Bristol university is C and that's looking like the place im going to end up.

Wow, thanks for all the responses.  Unfortunately there looks to be no consensus.  I would love to learn something lower level such as C, but I would like to go with something a bit more practical for a web developer first.  I think for now I will go with Perl, followed by Python or Ruby.

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.