Page 1 of 2 12 LastLast
Results 1 to 40 of 56

Thread: Learning to code

  1. #1
    Minde's Avatar
    Join Date
    Nov 2005
    Location
    Amongst the stars
    TIM
    EII/INFj E9w1sp
    Posts
    4,451
    Mentioned
    148 Post(s)
    Tagged
    0 Thread(s)

    Default Learning to code

    Op-ed in The Wired, Oct 31st

    NBA Superstar Chris Bosh: Here’s Why You Should Learn to Code



    I get it. There seems to be something silly about asking everyone — from the homeless to really young kids — to learn to code. There are deeper things that need to be fixed in the “system” too.

    But I don’t think that means we should dismiss the value of learning to code.

    Being a kid of the 1990s and living in a house run by tech-savvy parents, I began to notice that the world around me was spinning on an axis powered by varying patterns of 1s and 0s. We’d be fools to ignore the power of mastering the designing and coding of those patterns. If brute physical strength ran one era, and automation the next, this is the only way we can keep up. Most jobs of the future will be awarded to the ones who know how to code.

    We use code every time we’re on the phone, on the web, out shopping — it’s become how our world is run. So I take comfort in having a basic understanding of how something as big as this works.

    For most athletes, the sport they end up turning into a career was decided in school. For me it all started in high school. This is where it all happens. On one end, you are growing fast and becoming very good at sports, on the other end grownups all around you say you need to try out different things, to discover your likes and dislikes, you need a plan. It’s a lot of pressure for that age.

    Despite knowing my highly decorated jersey hung in Lincoln High’s gymnasium I knew well before I was in the NBA that to feel secure with my future — our future, really — I would need to be able to manipulate those 1s and 0s. Luckily, having extremely geeky parents that were constantly testing gadgets and flashing mad AutoCAD skills helped push my hands towards a keyboard and learning to code when they weren’t palming a basketball or blocking an opponent’s shot.

    For as far back as I can remember, my mom had a business called Computer Help. So I pretty much grew up around computers. Later on, she worked for Texas Instruments. We used to come back home after school and my mom would bring all these new TI gadgets for us to test and play around with; I still remember the first digital cameras! When people were still using AutoCAD, my dad did professional plumbing, engineering, and designing for a couple different companies.

    I’m lucky because my parents held us to a very high standard when it came to education, and they were very science driven. In high school I joined a club called Wizkids, a computer graphics club for two years. I always felt like I was in my element, my environment there. I also joined the Association of Minority Engineers and NSBE (the National Society of Black Engineers) during my senior year.

    I received my high school diploma, but I did not graduate from college. But even though I only stayed one year at Georgia Tech, I’ve kept a strong interest in science and a passion for education. I know I have that to fall back on. At some point most pro athletes have to ask themselves “what if it doesn’t work out?” In my case, I think I’d like to teach young kids computer science and coding — the younger the better.

    The funny thing about coding is that I really didn’t know what coding was when I was first discovering graphic design and computers in high school. Coding is at the base of almost every technology. If someone in school would have explained to me that coding could reach millions directly or indirectly and make their lives better, it would’ve sparked my interest much sooner. Plus I don’t think people a few years ago really understood the impact that coding would have on the world today.

    Like any good basketball game, we can still catch up.

    Even though my main interest at this moment in my life is basketball, I still continue to learn and discover. I would like to teach kids about coding because the possible applications are fascinating and it’s really quite simple when you think of it. And while you could say, “but you don’t use it in your career” — I’d argue that I do. I did learn lots of life lessons both on and off the court.

    At this point, learning to code is simply about understanding how the world functions.

    Plus, it’s cool. Even though I excelled at basketball, I was subjected to what many of my coding peers had to deal with before tech became “cool” — teasing. Although most people can’t imagine attempting to pick on someone that’s almost seven feet tall, there were some kids that still gave me a hard time. I was fortunate enough to have athletics to give me confidence in geekery. I was good at basketball so I was able to march to the beat of my own drum, and brush off what people thought.

    I’ve seen lots of videos with me in them throughout the years – games, music videos, commercials — but watching myself in the Code.org video was one of the coolest moments of my life. When fans started tweeting at me that their teachers showed them a video of me along with some of the most famous tech icons in the world, it all came together for me and made one thing clear: the nerds have finally achieved their revenge.

    I’m the Miami Heat player with “1” on my team jersey back. For me winning isn’t “winning” — it’s 01110111 01101001 01101110 01101110 01101001 01101110 01100111 (that’s W-I-N-N-I-N-G in binary code).
    This piece makes me happy. Home environment helps a ton. Just because people laugh, doesn't mean you're laughable. And I agree that tech is the future, in our lifetimes at least.

    I'm curious what (coding) languages he's familiar with...

    If you put your mind to it, it's not that big a jump to start learning coding, too. Especially nowadays, there are so many high-quality resources, including fun interactive ones.


    How many of you either do coding regularly or have messed around with it?
    Oh, to find you in dreams - mixing prior, analog, and never-beens... facts slip and turn and change with little lucidity. except the strong, permeating reality of emotion.

  2. #2
    A dusty and dreadful charade. Scapegrace's Avatar
    Join Date
    Jan 2010
    TIM
    ill
    Posts
    3,070
    Mentioned
    170 Post(s)
    Tagged
    0 Thread(s)

    Default

    I know how to code a bit, but honestly I find it quite tedious and boring. I'm also a *terrible* typist, which results in a lot of minor errors in my code that screw up the whole damn thing. I enjoy the logic/problem solving aspect of coding, but I don't like learning the languages or dealing with syntax.
    "[Scapegrace,] I don't know how anyone can stand such a sinister and mean individual as you." - Maritsa Darmandzhyan

    Brought to you by socionix.com

  3. #3
    Kim's Avatar
    Join Date
    Jun 2005
    TIM
    IEE e7 783 sx so
    Posts
    7,019
    Mentioned
    422 Post(s)
    Tagged
    2 Thread(s)

    Default

    I admire the ability to code. I have never touched it and never will. Just looking at code gives me a headache - too much detail to pay attention to.
    “Life shrinks or expands in proportion to one's courage.”
    ― Anais Nin

  4. #4
    Minde's Avatar
    Join Date
    Nov 2005
    Location
    Amongst the stars
    TIM
    EII/INFj E9w1sp
    Posts
    4,451
    Mentioned
    148 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by Scapegrace View Post
    I know how to code a bit, but honestly I find it quite tedious and boring. I'm also a *terrible* typist, which results in a lot of minor errors in my code that screw up the whole damn thing. I enjoy the logic/problem solving aspect of coding, but I don't like learning the languages or dealing with syntax.
    I'm not surprised you know a bit of coding. Not that my opinion matters much to you, but I think all of what you said is great. I wish more people had that attitude toward learning - where you're curious and try something, and even if you end up not liking it, at least you've explored and have some basic understanding of how those things work.

    Also, knowing how things work internally helps a lot when you're dealing with, um, upper layers, I guess. Like knowing the basics of a car's anatomy makes it easier to use one, even if you're not the one actually changing the brake fluid and whatnot.
    Oh, to find you in dreams - mixing prior, analog, and never-beens... facts slip and turn and change with little lucidity. except the strong, permeating reality of emotion.

  5. #5
    Zola's Avatar
    Join Date
    Jul 2009
    Posts
    68
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    Default

    I took a class in programming my first year at university years ago, I think it may have been mainly fortran but I don't really remember. All I remember of it was a lot of if, then and else and how frustrating it was trying to find the missed character making the whole thing fail. Passed the lab part of it but never sat the exam. I don't regret taking that year of maths classes as it was interesting and learning is always good but I don't regret leaving that path either as it wouldn't really have suited my temperament at all (you have to *really* love that sort of thing to spend your life on it I think.)

  6. #6
    Ti centric krieger's Avatar
    Join Date
    Sep 2006
    Posts
    5,937
    Mentioned
    80 Post(s)
    Tagged
    0 Thread(s)

    Default

    the appeal of coding to me is in the juxtaposition of abstraction and concreteness. it's hard to find areas of life where all of the following are concerned:

    - there is a clear distinction between right and wrong; you are accountable for your actions and can't excuse yourself from failure; you can fool neither others nor yourself about the quality of what you make
    - you have to think abstractly and deal with mainly intangible structures and substances
    - your actions have clear, visible results; you are building something that is useable and useful
    - the things you do happen on a short term time-frame; you see whether what you're doing is "working" almost immediately and can calibrate your thinking on the go; false beliefs and thought patterns are eliminated quickly
    - success and failure are dictated by reality, not the decree of persons in authority or majority opinion
    - there is a difference between solutions that merely work and solutions that are good in an elevated sense, "elegant"
    - you don't have infinite amounts of time to reflect on problems or account for every contingency; the work has to get done IN TIME
    - your program will likely be used by someone, so you need to understand the person's wishes, assumptions and expectations psychologically

    most other areas of life lack one or more of these, leading the activities concerned to either risk becoming a form of charlatanism or brainless drudgery in my opinion.

    i think the mentality you learn when coding is applicable to other areas of life; as a means of scrutinizing your thinking, maintaining your integrity and finding the interface between practice and theory. far from rigidizing your mind, it actually teaches to forgo one-dimensional mentalities in favor of a healthy pluralism of thought.

  7. #7

    Default

    i reached a good level in java and c++ in my undergraduate studies but i cannot format a pc yet.

    i think coding is "safer" than really messing with hardware and more hands-on things. like, the worst it can get is not to compile. i stopped compiling my code after while anyway, i would just put comments lul

  8. #8
    Trevor's Avatar
    Join Date
    Sep 2008
    Posts
    2,840
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by the16types View Post
    i think coding is "safer" than really messing with hardware and more hands-on things. like, the worst it can get is not to compile.
    Some people have died because of bad software.

  9. #9
    Professional Turtle Taknamay's Avatar
    Join Date
    Sep 2011
    Location
    United States
    TIM
    EII-Ne
    Posts
    858
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    Default

    I first learned programming around February of this year. My college requires math majors to learn some Java. Since then, I have been doing a lot of extra work outside class to practice. In addition to Java, I have recently been trying to learn Python because I love the syntax. A lot of people have recommended Python to me as a beginner language, and it's not hard to see why.

    My girlfriend recently said she wanted to learn code, so I got her to install Python and Notepad++ and she has been playing with it a little.
    What is a utopia? A dream unrealized, but not unrealizable. -- Joseph Dejacque
    EII (INFj) - 9w1 - INFP - Scorpio - Hufflepuff
    Johari - Fediverse

  10. #10
    context is king
    Join Date
    Dec 2005
    Posts
    1,737
    Mentioned
    58 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by Minde View Post
    Also, knowing how things work internally helps a lot when you're dealing with, um, upper layers, I guess.
    Underlying functionality can be quite separate from the upper layers, so for the most part learning to code won't make you understand a computerised world any better. Also there is a big difference between hobby/academic programming and "professional" programming - the former lacking a lot of the realistic pressures to produce something useful, competitive and on time in an organisation; pressures that greatly influence the end product.

    Labcoat best outlined the personal/intellectual benefits of programming.
    ἀταραξία

  11. #11
    I've been waiting for you Satan's Avatar
    Join Date
    Jul 2005
    Location
    Behind you
    TIM
    sle sp/sx 845
    Posts
    4,927
    Mentioned
    149 Post(s)
    Tagged
    16 Thread(s)

    Default

    i think java etc complicates matters a lot. people should just learn straight C.

    http://www.amazon.com/C-Programming-.../dp/0131103628

  12. #12
    Moderator xerx's Avatar
    Join Date
    Dec 2007
    Location
    Miniluv
    Posts
    8,044
    Mentioned
    217 Post(s)
    Tagged
    0 Thread(s)

    Default

    I've gone from C to assembler and haven't looked back since.

    Btw, collections / the stl are for dummies and PHP is what they teach to monkeys in those intelligence experiments.
    Last edited by xerx; 11-05-2013 at 12:24 AM.

  13. #13
    Professional Turtle Taknamay's Avatar
    Join Date
    Sep 2011
    Location
    United States
    TIM
    EII-Ne
    Posts
    858
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by mercutio View Post
    i think java etc complicates matters a lot. people should just learn straight C.

    http://www.amazon.com/C-Programming-.../dp/0131103628
    I don't like segfaults

    Quote Originally Posted by xerx View Post
    I've gone from C to assembler and haven't looked back since.

    Btw, collections / the stl are for dummies too stupid to implement their own algorithms. And PHP is what they teach to monkeys in those intelligence experiments.
    Isn't assembly less portable though? And also more difficult for others to audit for malicious code.
    What is a utopia? A dream unrealized, but not unrealizable. -- Joseph Dejacque
    EII (INFj) - 9w1 - INFP - Scorpio - Hufflepuff
    Johari - Fediverse

  14. #14
    Moderator xerx's Avatar
    Join Date
    Dec 2007
    Location
    Miniluv
    Posts
    8,044
    Mentioned
    217 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by Taknamay View Post
    Isn't assembly less portable though? And also more difficult for others to audit for malicious code.
    That is why only the baddest of asses use it.

  15. #15

    Default

    Quote Originally Posted by Trevor View Post
    Some people have died because of bad software.
    thatt;s a lie i bet someone lieke stepped on the cables

  16. #16
    I've been waiting for you Satan's Avatar
    Join Date
    Jul 2005
    Location
    Behind you
    TIM
    sle sp/sx 845
    Posts
    4,927
    Mentioned
    149 Post(s)
    Tagged
    16 Thread(s)

    Default

    Quote Originally Posted by Taknamay View Post
    I don't like segfaults
    then don't write bad code.

  17. #17
    I've been waiting for you Satan's Avatar
    Join Date
    Jul 2005
    Location
    Behind you
    TIM
    sle sp/sx 845
    Posts
    4,927
    Mentioned
    149 Post(s)
    Tagged
    16 Thread(s)

    Default

    Quote Originally Posted by xerx View Post
    I've gone from C to assembler and haven't looked back since.

    Btw, collections / the stl are for dummies too stupid to implement their own algorithms. And PHP is what they teach to monkeys in those intelligence experiments.
    what cpu are you using? 68k and 386s before protected mode was common had more advantages with using assembler. (you could use 32bit wide operations even in 16 bit real mode to boost performance, and 68k had low memory bandwidth etc which helped having tight code)

  18. #18
    Creepy-male

    Default

    I'm quite familiar with code, but what I struggle on its fluency, Ideally I'd like to be able to pop open an IDE or Command Prompt and go to work without having to consult resources. In many jobs I've impressed people by my ability to code, especially ones in which I am working with non-coding types. But I personally feel like I don't do it enough regularly to really have the proficiency I desire.

  19. #19
    Hot Message FDG's Avatar
    Join Date
    Nov 2005
    Location
    North Italy
    TIM
    ENTj
    Posts
    16,806
    Mentioned
    245 Post(s)
    Tagged
    0 Thread(s)

    Default

    Coding is okay. I guess labcoat explained pretty well why it can be enjoyable. I've never coded "professionally" though. I've started toying with MS-DOS since I was a small kid (6-7 yo) and at the time even interacting with a computer required you to do something similar to "coding" so idk, I don't see it as something "special".

    By the way, the article does not really explain why everyone should learn how to code "a bit"? To use AutoCAD? To play with gadgets? I believe the main motivation would be "to solve a real-life problem with a computer"?
    Last edited by FDG; 11-04-2013 at 06:33 AM.
    Obsequium amicos, veritas odium parit

  20. #20
    retired
    Join Date
    Aug 2013
    Location
    europe
    TIM
    Se
    Posts
    169
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    Default

    It's one of the things I want to learn out of sheer vanity.

  21. #21
    24601 ClownsandEntropy's Avatar
    Join Date
    Mar 2010
    Location
    Melbourne, Australia
    TIM
    LII, 5w6
    Posts
    670
    Mentioned
    24 Post(s)
    Tagged
    0 Thread(s)

    Default

    I've "learnt" C# and this holidays I want to start looking at Java. I don't do any of the classes, so I'm never sure if I'm doing things the fastest way or if I'm doing it the complete wrong way.
    Warm Regards,



    Clowns & Entropy

  22. #22
    squirreltual's Avatar
    Join Date
    May 2012
    Location
    UK
    TIM
    No. E9 sp/sx
    Posts
    813
    Mentioned
    34 Post(s)
    Tagged
    1 Thread(s)

    Default

    I don't know all the internal parts of my sewing machine because I don't need to. If I couldn't fix something, I'd use someone with that knowledge. Then I could spend my time on other skills.

    I know nothing about coding, I don't know why I'd ever need to. I prefer learning skills that feel more physical and less "dry", like instruments, spoken languages, etc.

  23. #23
    c esi-se 6w7 spsx ashlesha's Avatar
    Join Date
    Aug 2010
    Location
    the center of the universe
    Posts
    15,833
    Mentioned
    912 Post(s)
    Tagged
    4 Thread(s)

    Default

    coding has an appeal to me largely for reasons that lab described really well. but i don't have enough practical reason to learn it - besides the idea of it just being generally useful to know, which hasn't been motivating. i don't see myself actually applying it often in my life so i think i would forget what i learned due to lack of practice or it would become outdated. sometimes when i have idle thoughts of "if i ever have the resources to go back to school" coding stands out as something plausible.

  24. #24
    InvisibleJim's Avatar
    Join Date
    Jul 2011
    Location
    Si vis pacem
    TIM
    para bellum
    Posts
    4,809
    Mentioned
    206 Post(s)
    Tagged
    0 Thread(s)

    Default

    I usually code VBA simple scripts for various pieces of engineering software on an 'as needed' basis, once a month or so. It's much faster for running probabilitics than doing 100,000 runs by hand and it's much easier to manage all of the inputs and outputs when they are arrayed in tidy excel look up tables rather than hidden in stealthy interfaces. It also stops people dicking with the models when I just dump everything into a table, quality check and then send it all back in about 10 minutes.

    I expect that every engineer should at least understand the value of this approach even if they do not personally have the skills to do this.

  25. #25
    Moderator xerx's Avatar
    Join Date
    Dec 2007
    Location
    Miniluv
    Posts
    8,044
    Mentioned
    217 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by mercutio View Post
    what cpu are you using? 68k and 386s before protected mode was common had more advantages with using assembler. (you could use 32bit wide operations even in 16 bit real mode to boost performance, and 68k had low memory bandwidth etc which helped having tight code)
    x86-64 / AMD64 instruction set
    Last edited by xerx; 11-05-2013 at 12:34 AM.

  26. #26
    Moderator xerx's Avatar
    Join Date
    Dec 2007
    Location
    Miniluv
    Posts
    8,044
    Mentioned
    217 Post(s)
    Tagged
    0 Thread(s)

    Default

    Seriously guys...

    For those that don't know it, learn C really well if you want to be better programmers. Don't get stuck in the rut of using predefined data structures, automatic memory allocation and garbage collection. You're all too smart to be implementing what basically amount to APIs.

  27. #27
    Minde's Avatar
    Join Date
    Nov 2005
    Location
    Amongst the stars
    TIM
    EII/INFj E9w1sp
    Posts
    4,451
    Mentioned
    148 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by leckysupport View Post
    Underlying functionality can be quite separate from the upper layers, so for the most part learning to code won't make you understand a computerised world any better.
    I don't think it will necessarily make a HUGE difference, but based on my own anecdotal experience teaching and interacting with a range of technophobes to technophiles, I do think it can help. When I taught basic HTML + CSS to young students, I noticed that the ones who came into the class knowing little about computers (at the level where I even had to explain clicking with a mouse) left with often higher grasps of "computer logic" than many adults who have had more surface-level experience with computers. There's something about being able to grasp and manipulate that logic and how a computer "thinks" that enhances further interactions.


    Quote Originally Posted by The Man From Nantucket View Post
    I'm quite familiar with code, but what I struggle on its fluency, Ideally I'd like to be able to pop open an IDE or Command Prompt and go to work without having to consult resources. In many jobs I've impressed people by my ability to code, especially ones in which I am working with non-coding types. But I personally feel like I don't do it enough regularly to really have the proficiency I desire.
    Haha, one of my professional tricks is to have hotkeys set up for documentation searches.


    Quote Originally Posted by mfckr View Post
    If anything, the world needs less programmers so that the good ones don't have to spend so much time cleaning up after all the bad ones.
    That's why we need good education.


    Quote Originally Posted by FDG View Post
    By the way, the article does not really explain why everyone should learn how to code "a bit"? To use AutoCAD? To play with gadgets? I believe the main motivation would be "to solve a real-life problem with a computer"?
    I paraphrase a bit, but he said that when you create something with code it can be a way to immediately and practically reach people all over the world. And it gives you an understanding and edge in this technical age. But, yes, solving real-life problems with computers works, too.


    Quote Originally Posted by ClownsandEntropy View Post
    I've "learnt" C# and this holidays I want to start looking at Java. I don't do any of the classes, so I'm never sure if I'm doing things the fastest way or if I'm doing it the complete wrong way.
    Are you using any particular resources? I'm collecting good ones...
    Oh, to find you in dreams - mixing prior, analog, and never-beens... facts slip and turn and change with little lucidity. except the strong, permeating reality of emotion.

  28. #28
    Minde's Avatar
    Join Date
    Nov 2005
    Location
    Amongst the stars
    TIM
    EII/INFj E9w1sp
    Posts
    4,451
    Mentioned
    148 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by xerx View Post
    Seriously guys...

    For those that don't know it, learn C really well if you want to be better programmers. Don't get stuck in the rut of using predefined data structures, automatic memory allocation and garbage collection. You're all too smart to be implementing what basically amount to APIs.
    But, but, but... laziness is a cardinal virtue of programmers.
    Oh, to find you in dreams - mixing prior, analog, and never-beens... facts slip and turn and change with little lucidity. except the strong, permeating reality of emotion.

  29. #29
    24601 ClownsandEntropy's Avatar
    Join Date
    Mar 2010
    Location
    Melbourne, Australia
    TIM
    LII, 5w6
    Posts
    670
    Mentioned
    24 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by xerx View Post
    Seriously guys...

    For those that don't know it, learn C really well if you want to be better programmers. Don't get stuck in the rut of using predefined data structures, automatic memory allocation and garbage collection. You're all too smart to be implementing what basically amount to APIs.
    How would you recommend learning C? And what kind of projects can you make? Usually I just say "I want to make a...game which plays Big Two" and then I figure out how to do it. But I'm told that C isn't so robust because it's like the basics, so it's not really used for such applications. What kind of projects are realistic for me to make?
    Warm Regards,



    Clowns & Entropy

  30. #30
    24601 ClownsandEntropy's Avatar
    Join Date
    Mar 2010
    Location
    Melbourne, Australia
    TIM
    LII, 5w6
    Posts
    670
    Mentioned
    24 Post(s)
    Tagged
    0 Thread(s)

    Default

    I started off reading some C# manual available here http://msdn.microsoft.com/en-us/vstudio/aa718325.aspx or somewhere close. But once I got past the introduction to objects and classes and arrays I started programming. Then it was pretty much to google if I didn't understand - sites like stack overflow etc. helped - and if I got really stuck I sometimes asked my friend who programs "professionally". I'd love any resources you can suggest.

    (And for the record what I meant when I said "I don't do any of the classes" is that I don't do lessons, because I do use classes.)
    Warm Regards,



    Clowns & Entropy

  31. #31
    Moderator xerx's Avatar
    Join Date
    Dec 2007
    Location
    Miniluv
    Posts
    8,044
    Mentioned
    217 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by Minde View Post
    But, but, but... laziness is a cardinal virtue of programmers.
    Learn to code better in the short term, and you can get you get away with being even lazier over the long term.

  32. #32
    Moderator xerx's Avatar
    Join Date
    Dec 2007
    Location
    Miniluv
    Posts
    8,044
    Mentioned
    217 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by ClownsandEntropy View Post
    How would you recommend learning C?
    This book by Stephen Prata is a pretty good, comprehensive intro for beginners. You'll probably want take a look at this book at some point, which is the de facto standard.

    And what kind of projects can you make? Usually I just say "I want to make a...game which plays Big Two" and then I figure out how to do it. But I'm told that C isn't so robust because it's like the basics, so it's not really used for such applications. What kind of projects are realistic for me to make?
    C isn't "robust" in the sense you mean because it doesn't hold your hand. You probably won't be able to make very advanced stuff at your level beyond simple calculations, reading from a file, etc. But it will make you better a better programmer.



    [ ETA: the majority of games are written in C++, which is almost a strict superset of C. I'd suggest learning C++ before C since it comes with libraries and features that simplify things (particularly memory management and certain algorithms) and is object oriented.

    Although it is actually possible to write object-oriented code in C if you want to impress your friends. Early C++ was compiled by translating it into C first. ]
    Last edited by xerx; 11-06-2013 at 02:41 AM.

  33. #33
    Glorious Member mu4's Avatar
    Join Date
    Aug 2007
    Location
    Mind
    Posts
    8,174
    Mentioned
    759 Post(s)
    Tagged
    3 Thread(s)

    Default

    Chris Bosh, Georgia Tech... go jackets....

    Unfortunately it appears most people can't code, there's been studies done and most people just can't do it.

    Programming is a collection of tricks, algorithms, memory management and various optimization things people can do and representation which is the representation of domains within a functioning product. Most end user programs are going to be multi-layered projects which contain many different types of programming. C is a good starting point for optimization and performance and any decent object oriented language will help one learns how to model, the GUI is basically some sort of markup these days. These are all quite different from a programming standpoint but each has some specifics features which cater to the targeted application.

    One should know C, a object oriented language and HTML, these are the bread and butter pieces of the stack that people will alter and change, and most jobs will require some knowledge of the tools and mechanisms that these languages provide.

    Also one of the things about programming is one needs to read a lot of it, once one learns the basic languages, look thru the open source projects to understand why people made the design choices they did and certain programs do what they do.

    If you want to do app programming on any sort of moderate scale, you have to be familiar with patterns such as MVC and the various repository patterns. The's really a ton to learn, and a ton to specialize in.

  34. #34
    I've been waiting for you Satan's Avatar
    Join Date
    Jul 2005
    Location
    Behind you
    TIM
    sle sp/sx 845
    Posts
    4,927
    Mentioned
    149 Post(s)
    Tagged
    16 Thread(s)

    Default

    Quote Originally Posted by xerx View Post
    x86-64 / AMD64 instruction set
    is there really much benefit to be had apart from utilising instructions like AES, AVX2, etc ..

  35. #35
    Creepy-male

    Default

    Quote Originally Posted by InvisibleJim View Post
    I usually code VBA simple scripts for various pieces of engineering software on an 'as needed' basis, once a month or so. It's much faster for running probabilitics than doing 100,000 runs by hand and it's much easier to manage all of the inputs and outputs when they are arrayed in tidy excel look up tables rather than hidden in stealthy interfaces. It also stops people dicking with the models when I just dump everything into a table, quality check and then send it all back in about 10 minutes.

    I expect that every engineer should at least understand the value of this approach even if they do not personally have the skills to do this.
    I made a multivariate regression algorithm in VBA once that ran on the principle of stepping a variety of directions. So in two dimensions that would be N, NE, E, SE, S, SW, W, NW, and no movement. I extended this to higher dimensions as well (hence multivariate). Then based on which result yield the largest change it would adjust itself to that level and follow it until no other option was better. Once it arrived at the local peak or valley. It would then decrease the step size and repeat the process. It would continue to pursue this until the desired accuracy was achieved.

    The only issue was understanding how to properly execute and apply the algorithm. As you could end up chasing down several local maxima or minima. I based the algorithm on the concept of a mathematical gradient. A less efficient but more out of the box solution was to simply try all possible coordinates in n-dimensional space. But this wasn't useful as you were pulling a lot of information that wasn't important and for all practical purposes could have been considered empty.

    I enjoyed working to optimize such algorithms, however fluency with language is my issue. I spend a long time reading up on information and some programmers can be very high brow about their abilities instead of a teaching. I have my background more in science and mathematics so its not hard for me to think and develop intelligent algorithms, but I just haven't spent enough time with the languages. I also find musical intellect helps in developing algorithms.

    Any halfway decent programmer can build a monte carlo simulation. Assign input variables, give the parameters ranges and stepsize, and then simulate all possible outcomes given a set of logic to retrieve output variables. A master programmer (which I'm nowhere near), could pull functions from a framework of code on the fly to simulate results as problems appeared, like a fleet of ships. Utilizing network infrastructure and multiple environments. He could also manage these resources, even at times salvaging parts of poorly written logic and repurposing outdated resources, while adding new resources to increase the effectiveness of the fleet.

    My goal would be able to program that well, like a master chef at work in the kitchen, or an electronic musician building a weave from simple sounds and effects, at the ship's helm.

    I've seen several software resources at jobs and its rather impressive what it could be used for, but usually the business aspects of such systems involve things being very messy, and unfocused. Usually based on poorly planned projects with major scope creep. Systems always come into contact with people as users. One major aspect I'm surprised by is how little knowledge transfer occurs in the software industry at work. Programmers spend very little time developing standards, and helping to get other people up to speed, many organizations have developers directly subordinate to a software manager on a team, the various managers meet with executives that have little knowledge of any programming. It lends itself to problems. On the executive level, you need at least a single architect for every framework (fleet) to be a liason concerning the technical aspects of a system of resources. And developers need to work in collaborative environments.
    Last edited by male; 11-07-2013 at 05:40 AM.

  36. #36
    Hot Message FDG's Avatar
    Join Date
    Nov 2005
    Location
    North Italy
    TIM
    ENTj
    Posts
    16,806
    Mentioned
    245 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by The Man From Nantucket View Post
    I made a multivariate regression algorithm in VBA once that ran on the principle of stepping a variety of directions. So in two dimensions that would be N, NE, E, SE, S, SW, W, NW, and no movement. I extended this to higher dimensions as well (hence multivariate). Then based on which result yield the largest change it would adjust itself to that level and follow it until no other option was better. Once it arrived at the local peak or valley. It would then decrease the step size and repeat the process. It would continue to pursue this until the desired accuracy was achieved.
    You can do something similar with the Excel solver, too, by setting up a simple minimization problem and using the evolutionary algorithm (that shouldn't get stuck in local minimas).

    I was up to 400 level AutoCAD, and I still wouldn't "code". I dont know how you folks have the patience for stuff like that.
    I don't, but sometimes it's useful and cheap (meaning the alternative is spending 800-1000 euros on a software), thus I do it.
    Obsequium amicos, veritas odium parit

  37. #37
    24601 ClownsandEntropy's Avatar
    Join Date
    Mar 2010
    Location
    Melbourne, Australia
    TIM
    LII, 5w6
    Posts
    670
    Mentioned
    24 Post(s)
    Tagged
    0 Thread(s)

    Default

    I always learn to do things during my "exam revision" periods.

    So. Productive.
    Warm Regards,



    Clowns & Entropy

  38. #38
    InvisibleJim's Avatar
    Join Date
    Jul 2011
    Location
    Si vis pacem
    TIM
    para bellum
    Posts
    4,809
    Mentioned
    206 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by The Man From Nantucket View Post
    The only issue was understanding how to properly execute and apply the algorithm. As you could end up chasing down several local maxima or minima. I based the algorithm on the concept of a mathematical gradient. A less efficient but more out of the box solution was to simply try all possible coordinates in n-dimensional space. But this wasn't useful as you were pulling a lot of information that wasn't important and for all practical purposes could have been considered empty.
    Ah, you'll be looking for Sequential Linear/Quadratic Programming then. To be honest it takes teams of people to write the code for that properly.

  39. #39
    Samuel the Gabriel H. MisterNi's Avatar
    Join Date
    Mar 2007
    Location
    Los Angeles, California, USA.
    TIM
    C-IEE Ne (862)
    Posts
    1,127
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    Default

    Quote Originally Posted by The Man From Nantucket View Post
    I made a multivariate regression algorithm in VBA once that ran on the principle of stepping a variety of directions. So in two dimensions that would be N, NE, E, SE, S, SW, W, NW, and no movement. I extended this to higher dimensions as well (hence multivariate). Then based on which result yield the largest change it would adjust itself to that level and follow it until no other option was better. Once it arrived at the local peak or valley. It would then decrease the step size and repeat the process. It would continue to pursue this until the desired accuracy was achieved.

    The only issue was understanding how to properly execute and apply the algorithm. As you could end up chasing down several local maxima or minima. I based the algorithm on the concept of a mathematical gradient. A less efficient but more out of the box solution was to simply try all possible coordinates in n-dimensional space. But this wasn't useful as you were pulling a lot of information that wasn't important and for all practical purposes could have been considered empty.

    I enjoyed working to optimize such algorithms, however fluency with language is my issue. I spend a long time reading up on information and some programmers can be very high brow about their abilities instead of a teaching. I have my background more in science and mathematics so its not hard for me to think and develop intelligent algorithms, but I just haven't spent enough time with the languages. I also find musical intellect helps in developing algorithms.
    Such an algorithm isn't difficult to write. The visualization, spitting the numbers out in chart form has various methods though. Excel is most often used in business and proprietary software is often used in the petroleum industry. I personally prefer Matlab. It's simple to use, surprisingly powerful when it comes to automating various routines that would otherwise be complicated code. It's also what I used in school.

    Unless you're referring to building a self-contained executable, in which case you could become the "master of your domain" and learn all the necessary skills to build a program from start to finish or break the task up in to chunks and hire a team of developers to write it.

    Please note that I'm not a software programmer or software engineer. I have however done many odd tasks and jobs where I have had to (unwillingly) learn how to program. I have a rather peculiar skill set in this respect. Hiring someone who loves to develop software is a much better option, IMO.
    Last edited by MisterNi; 11-07-2013 at 03:52 PM.

    IEE Ne Creative Type

    Some and role lovin too. () I too...
    !!!!!!

  40. #40
    Creepy-male

    Default

    Quote Originally Posted by FDG View Post
    You can do something similar with the Excel solver, too, by setting up a simple minimization problem and using the evolutionary algorithm (that shouldn't get stuck in local minimas).
    Of course but I didn't have access to excel solver and the computer I was using at work had restrictions about downloading software. It was also a fun project. It was easy to direct the regression alogrithm to a correct solution though using a graph to estimate starting parameters and then immediately testing the output parameters. You could tell what worked and what didn't.

    Quote Originally Posted by InvisibleJim View Post
    Ah, you'll be looking for Sequential Linear/Quadratic Programming then. To be honest it takes teams of people to write the code for that properly.
    Yes that sounds very similar to what I wrote, but it was easy as I wasn't trying to build a product to work in all situations there was some level of practicality in the development of the algorithm where I could estimate what a reasonable range was and then verify the result made enough sense. If it was the excel solver algorithm I would have to test it for all given situations so the user won't have to bother working out the kinks. I was just using mathematics knowledge to sequentially improve the efficiency of the code. For example just reading up on SLP I can see the trust region is very important at each step, instead of developing logic to define the stepsize based on a realistic range for linear approximation, I just estimated this practically by trial and error. Likely some efficiency was wasted in understepping and some accuracy was wasted in overstepping, but this would have been another area of improvement to develop the criteria for the best stepsize that allows for convergence towards a unique solution without wasting computing resources.


    The other recent programming project I did in VBA was simulated the motion of planets orbits suns in an excel spreadsheet lol. I even got up to defining elastic and inelastic collisions between the objects, their Coefficient of Restitution and allowing objects to collide.
    Last edited by male; 11-08-2013 at 03:55 AM.

Page 1 of 2 12 LastLast

Posting Permissions

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