Which language to learn?

Discussion in 'Scripting & Programming' started by nugget, Nov 13, 2009.

  1. nugget
    Honorary Member

    nugget Junior toady

    7,796
    71
    224
    The reason that I ask is we just had a new web application set up for us today for internal use. It was programmed in Python and also with Django installed on an Apache web server set up with xampp. We also have an internal ordering system running in a mysql database in the xampp set up.


    What programming language would the more experienced programmers here recommend for learning?

    I'm open for any suggestions and have no preferences
     
    Certifications: A+ | Network+ | Security+ | MCP (270,271,272,290,620) | MCDST | MCTS:Vista
    WIP: MCSA, 70-622,680,685
  2. dmarsh
    Honorary Member 500 Likes Award

    dmarsh Petabyte Poster

    4,305
    503
    259
    What do you want to learn it for ? What type of applications do you want to write ?
     
  3. ericrollo

    ericrollo Megabyte Poster

    524
    11
    64
    PHP is fun because its so practical because other people can easily use and access it.
     
    Certifications: MOS Master, A+, MCP 271
    WIP: HND, Programming, Another Job
  4. JonnyMX

    JonnyMX Petabyte Poster

    5,257
    220
    236
    I'm a fan of VB.Net.

    Depends what you want to use it for of course, but it's equally at home in Web and Windows apps and ties in nicely with other MS toys.

    Jusy my opinion, mind.

    :D
     
    Certifications: MCT, MCTS, i-Net+, CIW CI, Prince2, MSP, MCSD
  5. dmarsh
    Honorary Member 500 Likes Award

    dmarsh Petabyte Poster

    4,305
    503
    259
    Theres 40+ languages that target the CLR and therefore benefit from the .NET runtime and libraries. The CLS should also mean they can interface with whatever toys you refer to. The only downside might be IDE integration.

    If I had to pick a CLR based language I'd pick C#.

    If you want something thats related to your work there is nothing wrong with Python.
     
  6. LukeP

    LukeP Gigabyte Poster

    1,194
    41
    90
    what he said ^

    C# or python
     
    WIP: Uhmm... not sure
  7. JK2447
    Highly Decorated Member Award 500 Likes Award

    JK2447 Petabyte Poster Administrator Premium Member

    7,197
    950
    318
    I've just started learning C and am enjoying it
     
    Certifications: VCP4, 5, 6, 6.5, 6.7, 7, 8, VCAP DCV Design, VMConAWS Skill, Google Cloud Digital Leader, BSc (Hons), HND IT, HND Computing, ITIL-F, MBCS CITP, MCP (270,290,291,293,294,298,299,410,411,412) MCTS (401,620,624,652) MCSA:Security, MCSE: Security, Security+, CPTS, CCA (XenApp6.5), MCSA 2012, VSP, VTSP
    WIP: Google Cloud Certs
  8. Fergal1982

    Fergal1982 Petabyte Poster

    4,196
    172
    211
    Vb.Net is a lot more verbose than C# and, in my opinion, much easier to pick up because of it. C# being less verbose isnt so much a bad thing, its just different.

    In my opinion, VB.Net is much more 'beginner friendly' than C#. Doesnt mean its a beginners (or "poorer" as the C# snobs would have you believe) language, just that it tends to be easier to pick up. As Dmarsh points out, C#/F#/VB.Net, etc, are all tied to the .Net frameworks, and are therefore capable of almost exactly the same things. There are minor differences in some of the things they can do, but not really much to be dealbreakers to any.

    The other consideration, is that C# is a case sensitive environment. Meaning that two variables: Person; and person, are actually two totally different objects. VB.net is case insensitive in this regard, which I (personally) think makes learning programming that bit easier. Its much easier to try and track down a bug as a beginner when you dont have to worry about a capital I in Mississipi. On the flip side, it may cause you issues if/when you choose to move to a language that is case sensitive. I'm only just beginning to move into the C# language at the moment, so I cant give a definitive comment.

    Of course, the above only covers the .Net framework (and specifically C#/VB). You can look at PHP, python, javascript, etc. I would start off, by defining what it is you aim to achieve with the language. Is it querying AD predominantly? Consider vbscript, or (im told) python. Websites hosted an LAMP host you already have? consider php. on a WAMP? consider a .net language. The definition of what you want will help determine your best language. So long as you look at picking up a current language, then you cant really go much wrong.
     
    Certifications: ITIL Foundation; MCTS: Visual Studio Team Foundation Server 2010, Administration
    WIP: None at present
  9. dmarsh
    Honorary Member 500 Likes Award

    dmarsh Petabyte Poster

    4,305
    503
    259
    C is still very much the number one language for systems programming.

    Thats why I asked what it was you wanted to program...

    Its quite simple, people with backgrounds in BASIC find VB .NET easier, people comming from C based languages find learning C# easier.

    If you have absolutely no previous experience I would say you are in a great position to pick up either VB .NET or C# without having to unjumble old stuff in your head.

    Languages like ALGOL, BASIC, COBOL and FORTRAN were created when people thought making languages mimick natural languages was a good thing. I think most people agree now this wasn't entirely successful, making languages mimick natural languages has few benefits for a programming language. In fact ALGOL was famously bad and context sensitive.

    Only one of these languages has a place in the modern world, and its not BASIC ! (its got an F in it ! )

    C was designed to be minimal, high level but also allow easy translation to assembly where an assembler would do the honours and convert to machine code.

    Verbosity or terseness in itself isn't necessarilly a good feature, COBOL is verbose, Perl is terse, expressiveness is a hard thing to measure but many people feel languages like C, Java and C# hit the sweet spot.

    Theres also various other perspectives static vs dynamic languages, procedural vs functional, imperative vs declarative, etc.

    Most modern langugages combine a mix of styles.
     
    Last edited: Nov 13, 2009
  10. JK2447
    Highly Decorated Member Award 500 Likes Award

    JK2447 Petabyte Poster Administrator Premium Member

    7,197
    950
    318
    Thanks Dave, remember me saying I wanted to be an infrastructure pen tester? Yeah well turns out even though I don't want to be an application pen tester I'd still have to be proficient in at least one language. Decided on C :D
     
    Last edited: Nov 13, 2009
    Certifications: VCP4, 5, 6, 6.5, 6.7, 7, 8, VCAP DCV Design, VMConAWS Skill, Google Cloud Digital Leader, BSc (Hons), HND IT, HND Computing, ITIL-F, MBCS CITP, MCP (270,290,291,293,294,298,299,410,411,412) MCTS (401,620,624,652) MCSA:Security, MCSE: Security, Security+, CPTS, CCA (XenApp6.5), MCSA 2012, VSP, VTSP
    WIP: Google Cloud Certs
  11. nugget
    Honorary Member

    nugget Junior toady

    7,796
    71
    224
    Wow, thanks for the replies guys.

    Well, two reasons really. The first is for me, that it's something else that I can do. The second is for work so that if we need something programmed then I have half a chance of being allowed to do it.


    I'm not too sure of the differences in all the languages these days as there seems to be a new one popping up every 4 months. I would like something that I can use at work but as I said, I don't know much about any of them these days. I work at a Biotech company so something suited to that area would be nice and I think that Python is as far as I saw on the web today (suited to bioinformatics etc).

    I also spoke to the guy that installed everything (after posting here) and he also recommended Python to begin with as it's more of an agnostic scripting language. I must admit that I think I prefer scripting over programming as I dabbled a little in vbscript and quite liked it as well as powershell too (just that I have no need for them).

    We will be putting our product into clinical trials early next year and there will be a lot to do for the Quality Assurance department. They will be producing a truckload of paperwork and it was briefly mentioned that someone would like it "in a sort of indexed and searchable database type of thing".

    Maybe if I could do this then I might be able to justify a full time IT position instead of 2 days a week.

    As I said, I'm not fussy and have no preconcieved preferences (except java), just something that is relatively simple to start to learn with.
     
    Certifications: A+ | Network+ | Security+ | MCP (270,271,272,290,620) | MCDST | MCTS:Vista
    WIP: MCSA, 70-622,680,685
  12. dmarsh
    Honorary Member 500 Likes Award

    dmarsh Petabyte Poster

    4,305
    503
    259
    Good luck with that ! Let me know if you need any pointers, excuse the pun !

    C is a very simple elegant language, well worth learning.
     
  13. JK2447
    Highly Decorated Member Award 500 Likes Award

    JK2447 Petabyte Poster Administrator Premium Member

    7,197
    950
    318
    Thanks very much my friend. Just while I have a development god on the line, would you agree C is a good place for me to start? Could you recommend a second language for me? According to HR I won't need to be as good as a developer to get this pen testing role, but I will need to be able to understand what I'm looking at :oops:
     
    Certifications: VCP4, 5, 6, 6.5, 6.7, 7, 8, VCAP DCV Design, VMConAWS Skill, Google Cloud Digital Leader, BSc (Hons), HND IT, HND Computing, ITIL-F, MBCS CITP, MCP (270,290,291,293,294,298,299,410,411,412) MCTS (401,620,624,652) MCSA:Security, MCSE: Security, Security+, CPTS, CCA (XenApp6.5), MCSA 2012, VSP, VTSP
    WIP: Google Cloud Certs
  14. dmarsh
    Honorary Member 500 Likes Award

    dmarsh Petabyte Poster

    4,305
    503
    259
    You want a second language ? :D

    Gee, you don't want much do you ? :wink:

    Well C sounds like a great choice for a pen tester in general, should allow you to understand system source for most open source projects of interest to you.

    Again it really depends what you want it for, maybe x86 assembler if you want to get into reversing / disassembly ?

    If they want you to do static analysis then obviously whatever language they want you to analyse, probably most likely C++, Java or C# I'd have thought.

    If they want you to look into cross site scripting or SQL injection maybe JavaScript or SQL ?

    If its purely out of academic interest then probably something funky like Erlang, OCaml, Haskell, F#, Scala, R, Go ?

    Maybe C#, Java or Python if you want to write pen test tools in a higher level language than C.
     
    Last edited: Nov 13, 2009
  15. JK2447
    Highly Decorated Member Award 500 Likes Award

    JK2447 Petabyte Poster Administrator Premium Member

    7,197
    950
    318
    You know me ha ha Fast Track Jim! Thanks very much mate. Probably go for C++ when I get a chance :rolleyes::biggrin
     
    Certifications: VCP4, 5, 6, 6.5, 6.7, 7, 8, VCAP DCV Design, VMConAWS Skill, Google Cloud Digital Leader, BSc (Hons), HND IT, HND Computing, ITIL-F, MBCS CITP, MCP (270,290,291,293,294,298,299,410,411,412) MCTS (401,620,624,652) MCSA:Security, MCSE: Security, Security+, CPTS, CCA (XenApp6.5), MCSA 2012, VSP, VTSP
    WIP: Google Cloud Certs
  16. dmarsh
    Honorary Member 500 Likes Award

    dmarsh Petabyte Poster

    4,305
    503
    259
    Make sure you understand C first, learning C++ to a high level is a long process, it has many wrinkles... :D

    The ACCU is an excellent organisation, well worth a look.
     
    Last edited: Nov 13, 2009
  17. JK2447
    Highly Decorated Member Award 500 Likes Award

    JK2447 Petabyte Poster Administrator Premium Member

    7,197
    950
    318
    Thank you my friend. C++ probably something I'll learn over years then when I get bored of certs
     
    Certifications: VCP4, 5, 6, 6.5, 6.7, 7, 8, VCAP DCV Design, VMConAWS Skill, Google Cloud Digital Leader, BSc (Hons), HND IT, HND Computing, ITIL-F, MBCS CITP, MCP (270,290,291,293,294,298,299,410,411,412) MCTS (401,620,624,652) MCSA:Security, MCSE: Security, Security+, CPTS, CCA (XenApp6.5), MCSA 2012, VSP, VTSP
    WIP: Google Cloud Certs
  18. colemancol

    colemancol New Member

    6
    0
    1
    Well I suggest .net and PHP for web programming.
    And as per mater relate to embedded programming C,C++ are the best one...
     
  19. sidramalik100

    sidramalik100 New Member

    4
    0
    1
    every language is good but i think C++ is also the best one for you
     

Share This Page

Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.