I'm looking into learning some more languages and some better code writing techniques, but I am not sure of the languages that I should delve into.

So far I know VB really well and I started learning assembly, but I don't know that past some, I guess, medium difficulty, 16 bit. Oh, and I can write PHP. I tried learning C++ but I found it really difficult after using VB for so long, that's why I started with assembly, so I could learn how the memory and architecture works so I could better understand why I had to do certain things in other languages. Anyways, I keep reading that python is good to learn before C, and perl, but that's all I really know about them... I was just wondering what people know about say, advantages/disadvantages, or the differences between C, C++, perl, python, java, pascal, delphi, and any other languages that you may know? Also, wtf is C#? and Legacy?

thanks in advance for your help

Dani AI

Generated

Short, practical plan tied to the thread: since already has strong VB and some assembly knowledge, use that base to learn three things separately — high-level scripting/OO, low-level memory, and a different programming paradigm. That keeps progress visible and prevents overwhelm. 's push toward object thinking and 's nudge toward functional styles are both useful; pick projects that force each skill.

Start with Python for fast wins and readable OO. Install from python.org, create a virtualenv, and build a tiny tool that touches files and data structures (no web frameworks yet). Example: a simple binary dumper to see bytes and slicing.

# tiny Python example: print first 64 bytes of a file as hex
import sys
with open(sys.argv[1], 'rb') as f:
    print(f.read(64).hex())

Next, learn C to make pointer and allocation issues concrete. Use gcc/clang and practice small programs, compile with sanitizers, and run under Valgrind or AddressSanitizer. Example compile line:

gcc -std=c11 -Wall -Wextra -fsanitize=address -g -o prog prog.c

A short C exercise: malloc an int array, write values, then free it. After you understand C, learn modern C++ (post-C++11) focusing on RAII, std::vector, and smart pointers rather than raw-new/delete. Use cppreference.com for up-to-date docs.

Quick notes on items you asked about: C# is a managed, object-oriented language on the .NET platform (good for Windows apps, web backends, and Unity). "Legacy" usually means older code or systems still in use that are hard to maintain; approach them with tests, small refactors, and lots of reading. If interested in functional thinking later, try Haskell or Racket to learn immutability and pure functions — Haskell resources at haskell.org.

Recommended Answers

All 5 Replies

Learn Scheme, C++, Haskell, and C#. That will take some time. You have to actually do projects in them, of course.

The languages you've listed, and most other languages, are not worth learning if you have those four and are interested in generally improving your coding ability, but they may be worth learning because they're nice languages to know and to be able to use. (For example, I never use Scheme and frequently use Perl, and would use Python or Ruby instead of Scheme, too, but I have to recommend Scheme for pedagogical purposes.)

I've never worked with Scheme, or Haskell so I can't readily debate their merits.

From what you posted that you know (VB and Assembly) I would recommend that you learn an object oriented language. The goal of working in the language is actually not-so-much to learn the language, even though that will be useful, but to learn to think objects as that skill will apply to any other OO language you might pursue. Python, Java, C++ and C# would all qualify as target languages in that regard.

@Rashakil

Have you ever used Scheme or Haskell in a commercial application, or have you used them primarily in an educational setting?

okay, thanks, I think I'll start with Python and then go to C++, as I've never heard of scheme or haskell

Have you ever used Scheme or Haskell in a commercial application, or have you used them primarily in an educational setting?

Yes.

Have you ever used Scheme or Haskell in a commercial application, or have you used them primarily in an educational setting?

And that doesn't matter. If you want better code writing techniques in languages like C#, the easiest and best way is to learn Haskell.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.