Results 1 to 13 of 13

Thread: Programming and Linux/Unix?

  1. #1
    I am Xtreme
    Join Date
    Jan 2008
    Posts
    116

    Programming and Linux/Unix?

    Major noob here! Just started learning Java and so far I'm loving it. Been learning with Eclipse and Wordpad++. I'm really interested in learning more about all sorts of programming languages (not just Java). One of my major questions is in regards to operating systems. I've always kind of heard that Linux/Unix is the way to go if you want to become a prolific programmer. Can anyone tell me why that is? Like, why is it that, say, Ubuntu would be better than Windows 7 for writing code? I could be completely wrong here and straight up be looking into a misconception of programming, but like I said, I've heard this said before so I was curious. Thanks in advance!

    Tips and advice for a noobie programmer are welcome!

  2. #2
    Xtreme Member
    Join Date
    Aug 2009
    Location
    Somewhere
    Posts
    220
    Java is a good place to start. I'm actually helping teach a Java course at my college. What kind of programming do you want to do? I don't think it really matters what platform you develop on. I've build Java programs on the 3 major OS types; MS Windows, Apple OSX, and some flavors of Linux, and I haven't noticed a difference between them for programming (minus a few little things). You can use Windows just as easily (maybe even easier) to program something compared to Linux.

    A few tips for a new programmer:
    1. Plan it out! Write pseudo-code and think through the logic very well before you even write the first line of code for a project. This helps a lot, and the students in the class I'm helping with should do it more. It may take a while to start, but the actual programming will go much faster.

    2. Save and test your code often. You never know when your code will break, or if it will crash your computer. It's a lot easier to fix a problem in 100 lines of code than it is in 1000 lines of code.

    3. Use documentation (A.K.A. RTFM). There is pretty good documentation for most programming languages available on the internet. Read that, search it, get comfortable with it. And also don't be afraid to use other sources, but before you post somewhere about something, make sure you try it yourself as you will probably get a lot of "RTFM" statements if you're asking how to create a for loop in Java (or any other language) for example.

    Like I said before, let us know what branch you're interested in, (application development, driver development, scripting, web development, mobile, etc) and we can probably throw some more stuff your way.

    Desktop (and Cruncher #1):AMD Phenom II x6 1090T @ 4.03Ghz | Gigabyte MA790FXT-UD5P (F8n) | G.Skill Ripjaws 2x4GB @ 9-9-9-24-1T 1680MHz | Radeon HD 5850 & 5830 | Silverstone ST75F 750W | 60GB OCZ Vertex 2 3x1TB WD RE3 (Raid 5) | Lian Li PC-A70B
    Cruncher (#2): Intel Core I7 920 (stock) | EVGA X58 SLI | G.Skill Pi 3x2GB | 2x Radeon HD 6870 | Corsair HX850 | Some Janky HDD | LanCool PC-K7
    Cruncher (#3): Intel Core I7 2600k (stock) | BioStar TH67+ | G.Skill Ripjaws 2x4GB | Antec Basiq550 | Some Janky HDD | Antec 300
    Server: Intel Atom | 2x2GB DDR3 | ThermalRight TR2-430 | Some Less Janky Laptop HDD | Fractal Core-1000
    Mobile: Lenovo X120e

  3. #3
    I am Xtreme
    Join Date
    Jan 2008
    Posts
    116
    Awesome, thanks for the reply!

    This is my first attempt at learning programming and I like it. I think I want to focus more on web development and mobile (apps and platforms?) development since that's what interests me the most. I might be wrong in thinking this, but I feel if I can learn to be a proficient programmer, I can branch myself out to whatever segment I desire. So with that being said, my goal is to just "get it, and enjoy it". But yeah, if I had to point to a specific segment then I'd say web and mobile for sure.

    Do you think those "for dummies" books help at all? Also, how do you feel about Youtube tutorials and lessons? What has me optimistic is the fact that programming excites me. I was worried when my java class first started but I feel as though I'm starting to "get it", and since it excites me then I like to assume I'm enjoying it, haha.

  4. #4
    Xtreme Member
    Join Date
    Aug 2009
    Location
    Somewhere
    Posts
    220
    I'm glad you like programming... there are many that try it and just don't get it. For web stuff, Look into some fun things like PHP, Java, JavaScript, JQuery, HTML (either HTML 5 or XHTML 1.1), and CSS. There are many other languages you can do web stuff with, but these are the major ones that are pretty quick and easy to learn. There are other more advanced languages and frameworks such as .NET, Ruby on Rails, but I would stick to the simple stuff first. As for mobile, you can use Java to develop for android, and you'll have to learn Objective C for iOS (apple). Web stuff is really easy comparatively. You might also want to look into some DBMS's like MySQL and PostgreSLQ (I prefer Postgres, because it has many more features and acts more like a full DBMS). You can find some good resources HERE.

    I've never used the for dummies books. I would suggest you save some money and go find a few online tutorials, or post some stuff on here. With these languages a lot changes quite often, so a book would become quickly outdated. I'm more than willing to help with smaller problems or come up with ideas for you to try to implement to test your skills.

    Cheers!

    Desktop (and Cruncher #1):AMD Phenom II x6 1090T @ 4.03Ghz | Gigabyte MA790FXT-UD5P (F8n) | G.Skill Ripjaws 2x4GB @ 9-9-9-24-1T 1680MHz | Radeon HD 5850 & 5830 | Silverstone ST75F 750W | 60GB OCZ Vertex 2 3x1TB WD RE3 (Raid 5) | Lian Li PC-A70B
    Cruncher (#2): Intel Core I7 920 (stock) | EVGA X58 SLI | G.Skill Pi 3x2GB | 2x Radeon HD 6870 | Corsair HX850 | Some Janky HDD | LanCool PC-K7
    Cruncher (#3): Intel Core I7 2600k (stock) | BioStar TH67+ | G.Skill Ripjaws 2x4GB | Antec Basiq550 | Some Janky HDD | Antec 300
    Server: Intel Atom | 2x2GB DDR3 | ThermalRight TR2-430 | Some Less Janky Laptop HDD | Fractal Core-1000
    Mobile: Lenovo X120e

  5. #5
    Xtreme Member
    Join Date
    Aug 2009
    Location
    Somewhere
    Posts
    220
    I'm glad you like programming... there are many that try it and just don't get it. For web stuff, Look into some fun things like PHP, Java, JavaScript, JQuery, HTML (either HTML 5 or XHTML 1.1), and CSS. There are many other languages you can do web stuff with, but these are the major ones that are pretty quick and easy to learn. There are other more advanced languages and frameworks such as .NET, Ruby on Rails, but I would stick to the simple stuff first. As for mobile, you can use Java to develop for android, and you'll have to learn Objective C for iOS (apple). Web stuff is really easy comparatively. You might also want to look into some DBMS's like MySQL and PostgreSLQ (I prefer Postgres, because it has many more features and acts more like a full DBMS). You can find some good resources HERE.

    I've never used the for dummies books. I would suggest you save some money and go find a few online tutorials, or post some stuff on here. With these languages a lot changes quite often, so a book would become quickly outdated. I'm more than willing to help with smaller problems or come up with ideas for you to try to implement to test your skills.

    Cheers!

    Desktop (and Cruncher #1):AMD Phenom II x6 1090T @ 4.03Ghz | Gigabyte MA790FXT-UD5P (F8n) | G.Skill Ripjaws 2x4GB @ 9-9-9-24-1T 1680MHz | Radeon HD 5850 & 5830 | Silverstone ST75F 750W | 60GB OCZ Vertex 2 3x1TB WD RE3 (Raid 5) | Lian Li PC-A70B
    Cruncher (#2): Intel Core I7 920 (stock) | EVGA X58 SLI | G.Skill Pi 3x2GB | 2x Radeon HD 6870 | Corsair HX850 | Some Janky HDD | LanCool PC-K7
    Cruncher (#3): Intel Core I7 2600k (stock) | BioStar TH67+ | G.Skill Ripjaws 2x4GB | Antec Basiq550 | Some Janky HDD | Antec 300
    Server: Intel Atom | 2x2GB DDR3 | ThermalRight TR2-430 | Some Less Janky Laptop HDD | Fractal Core-1000
    Mobile: Lenovo X120e

  6. #6
    Xtreme Mentor
    Join Date
    Aug 2005
    Location
    Boston, MA, USA
    Posts
    2,883
    Well, Java development in Eclipse probably doesn't feel much different no matter what OS you use.

    The Unix commandline can be very useful. It never ceases to amaze me how much effort Windows people invest into downloading some specialized tool for something when a simple pipe (usually involving find) would do.

    Then there is the aspect of how often you reinstall and how much control you have of the system. Very useful if you have a very extensively tuned development environment.

    In general I recommend not learning tools or languages that only have one implementation, because that knowledge can be taken away too easily if the entity controlling the implementation has a change of heart. It is OK if the tool is under a real open source license, because then the project can (and usually will) be split in that case.

  7. #7
    Registered User
    Join Date
    Jan 2009
    Posts
    62
    Linux is generally good for programming because it has c++ built in (with compiler) (out of the box in most distros), and php and apache servers go hand in hand with linux. Equivalent software in Microsofts environment typically costs quite a lot. This gives you exposure to common and powerful cornerstones of programming.

  8. #8
    Xtreme Cruncher
    Join Date
    Dec 2005
    Location
    L.A. ( Latin America)/ 4socket wannabe
    Posts
    2,756
    I try to think as much as possible rather than type and type.

    Flow charts are something I make use of . I m not a kick ass coder by no means and not the brightest candle in the cake also .

    Be neat, consistent, curious, document EVERYTHING ( your memory is is more "volatile" than most think).

    Start small. Have fast "positive feedback" from your coding. Try to break big problems into small ones , without forgetting how you are going to glue those ones ( document that also).

    Have someone you have empathy with to "stress you up".


    Dont have your coding skills constantly influenced by "how clever" some folks appear to be . Your code is always the best cause it belongs to you.

    If you want to use someone elses code drop it if you can't get the logics out of it.

    Dont play the game of what is the best language .


    Be patient. If you don't enjoy it don ' t force yourself.
    "Study hard my young friend"[/B].
    ---------------------------------------
    Woody: It's not a laser! It's a... [sighs in frustration]

  9. #9
    I am Xtreme
    Join Date
    Jan 2008
    Posts
    116
    Thanks for all the feedback everyone! I think I'm liking this more and more. I'm going to start worrying less about whether I'm doing it right and just dive right in and start making and breaking things. I'm sure eventually I'll pick it up like it's second nature to me. I'm not a HUGE fan of reading, and thus feel as though I'm learning more through watching tutorials on Youtube. Some of the guys in there are really good at explaining things, and to be honest I'm using that as a resource more than I am my $130 Java book lol -_-

  10. #10
    Xtreme Member
    Join Date
    Aug 2009
    Location
    Somewhere
    Posts
    220
    The best class I ever took for programming logic was discreet math. It helps you understand all those fun little things that help make programming so much easier. Generally the books for these types of classes are not too good, as they are written by programmers for programmers instead of for people who are trying to get into programming. Once you learn how to read JavaDocs, you're all set for Java.

    Desktop (and Cruncher #1):AMD Phenom II x6 1090T @ 4.03Ghz | Gigabyte MA790FXT-UD5P (F8n) | G.Skill Ripjaws 2x4GB @ 9-9-9-24-1T 1680MHz | Radeon HD 5850 & 5830 | Silverstone ST75F 750W | 60GB OCZ Vertex 2 3x1TB WD RE3 (Raid 5) | Lian Li PC-A70B
    Cruncher (#2): Intel Core I7 920 (stock) | EVGA X58 SLI | G.Skill Pi 3x2GB | 2x Radeon HD 6870 | Corsair HX850 | Some Janky HDD | LanCool PC-K7
    Cruncher (#3): Intel Core I7 2600k (stock) | BioStar TH67+ | G.Skill Ripjaws 2x4GB | Antec Basiq550 | Some Janky HDD | Antec 300
    Server: Intel Atom | 2x2GB DDR3 | ThermalRight TR2-430 | Some Less Janky Laptop HDD | Fractal Core-1000
    Mobile: Lenovo X120e

  11. #11
    I am Xtreme
    Join Date
    Jan 2008
    Posts
    116
    Quote Originally Posted by desnudopenguino View Post
    The best class I ever took for programming logic was discreet math. It helps you understand all those fun little things that help make programming so much easier. Generally the books for these types of classes are not too good, as they are written by programmers for programmers instead of for people who are trying to get into programming. Once you learn how to read JavaDocs, you're all set for Java.
    Yeah and I think that might be part of what's making things harder to pickup for me. I'm still a very low math level because I'm a returning student. I had initially dropped out back in 2003 and enrolled again in 2010. So that much of a break caused me to be extra rusty and I bombed a lot of my placement exams, so I'm basically starting at the bottom, haha ._.

    Anyway, I was wondering if anyone could give me a quick push in the right direction on a Java assignment I've been working on that I'm struggling with. I've already started the assignment using Eclipse, which I uploaded to the following link: http://dl.dropbox.com/u/23797076/Assign3.rar

    First off, I'm NOT looking for someone to do my assignment for me, I just need help I'm supposed to create a JFrame GUI application that calculates shipping charges for packages based on weight. That part isn't complicated, but what's screwing me up is that the application needs to be able to calculate the shipping charges for MULTIPLE packages, and then at the end summarize a total for all packages. I know this is basic stuff but it's got me stumped. My basic application has 3 fields, one for the object's ID, another for the weight in lbs, and another for a weight in ounces. It then has a button that is used to calculate the shipping charges (based on a pre-designated rate of $.12 per ounce) and then a text area to display the results of the current order. I'm okay up to this part, I can do this just fine. The next part is what screws me over. The application also needs a 2nd button that summarizes (onto the JPane itself, not another text box) the total number of packages and total shipping charges for all packages. This is where I'm screwed. I think I need to use listeners and not scanners? Not sure, but picking up the book and "learning" has to develop this has been extremely difficult. I'm definitely doing something wrong and am looking for advice. Keep in mind, I'm NOT looking for someone to do the assignment for me, haha. Our teacher isn't the most descriptive person, and even though she's extremely nice, I'm not learning ANYTHING from her. I feel like I need more guide than that. Like someone/something that could explain to me what I need to implement into the code, and WHY I need to implement it.

    If anyone can offer any sort of advice or input that would be great! I know it's a long-shot, but I'm not having a ton of luck simply searching on my own. I'm going to continue reading out of the book and watching online learning tutorials though. Thanks guys!

  12. #12
    Xtreme Member
    Join Date
    Mar 2009
    Location
    Unknown
    Posts
    266
    Ubuntu tries to emulate Windows, so its a good place to start but try moving to better/intricate systems like Arch/Gentoo to learn the internals for the operating systems.Although I wouldn't advise unless you're very comfortable with Linux.

    But for large projects/development Windows is often preferred given they have MSVS and all their proprietary technologies. Games are mostly DX based. Most commercial apps have Windows-focused development. Servers & academic institutions might be an exception. So its the development environment that you use which will determine which OS to use.
    Va fail, dh'oine.

    "I am going to hunt down people who have strong opinions on subjects they dont understand " - Dogbert

    Always rooting for the underdog ...

  13. #13
    Xtreme Mentor
    Join Date
    Aug 2005
    Location
    Boston, MA, USA
    Posts
    2,883
    Quote Originally Posted by Tao~ View Post
    But for large projects/development Windows is often preferred given they have MSVS and all their proprietary technologies. Games are mostly DX based. Most commercial apps have Windows-focused development. Servers & academic institutions might be an exception. So its the development environment that you use which will determine which OS to use.
    Well, servers, and serving to a web browser, is where the music is there days, no?

    And when it comes to native clients, if you are into that kind of thing IOS and Android are probably more valuable than getting in line for the unemployment benefits with all the other .net people (unless you are willing to relocate to India).

    Games, sure, but unless you work on a concrete current title OpenGL is much more attractive to learn.

Bookmarks

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •