Massassi Forums Logo

This is the static archive of the Massassi Forums. The forums are closed indefinitely. Thanks for all the memories!

You can also download Super Old Archived Message Boards from when Massassi first started.

"View" counts are as of the day the forums were archived, and will no longer increase.

ForumsDiscussion Forum → Wookie06's Computing and Electronic Thread
123
Wookie06's Computing and Electronic Thread
2015-07-09, 10:22 AM #41
I started with QBASIC. It has multidimensional arrays, structs, and subroutines. Syntax aside, it's quite a small step away from C. I guess my real question is, what will learning a C-like language add in this specific situation?

Also, what similarities do you see in C#, C++, and C?
2015-07-09, 10:44 AM #42
They're all more advanced than B.

C probably is the most advanced of all, though
2015-07-09, 10:46 AM #43
Originally posted by Reverend Jones:
You could also get him to work on a TC mod for JK.


Hey!
Star Wars: TODOA | DXN - Deus Ex: Nihilum
2015-07-09, 1:39 PM #44
I think Jon has it right. Python is really the way for beginners to go nowadays. You can get good results out of the gate. There are some really good game-oriented, beginner-friendly libraries for it. Both C and Javascript are natural stepping stones after learning Python for various reasons.
"it is time to get a credit card to complete my financial independance" — Tibby, Aug. 2009
2015-07-09, 4:50 PM #45
I appreciate all of the feedback so far and I see some interesting suggestions. I don't want to give the illusion that I am about to delve seriously into this right now, though. It's just something that is always in the back of my mind. And since my mind is so limited that leaves it much closer to the front than it should be.

For me I remember walking up to an old computer and plugging away a few simple lines of basic and being moderately entertained. I learned a little and I think every extra bit you learn in life makes you a more well rounded person. Today, most of us are just consuming electronic media and creating nothing. If there is some user friendly way I can help my son be more creative I want to explore that option.

Even going back to the early 90s when a lot of us were still using DOS, to be a proficient user it was very beneficial to know many commands. While certainly not programming, learning how to interact with the OS in that manner seemed to be similar in nature. I remember when I bought my first real PC, a Windows 95 machine, you would often have to write batch files to configure things a certain way when restarting in MSDOS mode to get a game to run. I bought a joystick that didn't work in TIE fighter, searched for a fix, downloaded a patch, had to learn what a zip file was and how to open it with pkunzip to get the game to work. Of course things are better now but for the average user you don't need to really know anything anymore.

There's no real point to all of this other than to reiterate that I want to try to help my son grow more than just letting him be the typical kid will encourage him to.
"I would rather claim to be an uneducated man than be mal-educated and claim to be otherwise." - Wookie 03:16

2015-07-09, 7:00 PM #46
Originally posted by Wookie06:
Even going back to the early 90s when a lot of us were still using DOS, to be a proficient user it was very beneficial to know many commands. While certainly not programming, learning how to interact with the OS in that manner seemed to be similar in nature. I remember when I bought my first real PC, a Windows 95 machine, you would often have to write batch files to configure things a certain way when restarting in MSDOS mode to get a game to run. I bought a joystick that didn't work in TIE fighter, searched for a fix, downloaded a patch, had to learn what a zip file was and how to open it with pkunzip to get the game to work. Of course things are better now but for the average user you don't need to really know anything anymore.

There's no real point to all of this other than to reiterate that I want to try to help my son grow more than just letting him be the typical kid will encourage him to.


That's all fine and well, but please do make sure you draw the line before it's too late. Here's a cautionary tale.
2015-07-09, 8:25 PM #47
Oh my God. I think it's already too late.
"I would rather claim to be an uneducated man than be mal-educated and claim to be otherwise." - Wookie 03:16

2015-07-09, 8:56 PM #48
The other benefit of getting him interested in software early (and mathematics) is that he might stick with it, and then might eventually be able to afford to move out.
2015-07-10, 12:47 PM #49
Originally posted by Jon`C:
What do you find is the benefit of VB (presumably .NET) over jumping right into Java or C#?

Well, my experience is limited to where I work and such, so my saying that was mostly based on that. It's just that most students that I've seen have been stuck in Java as a beginner class, without having any previous classes on programming, analysis, or logic. They seemed to do better when switching over to VB and taking that as their first language. Also, I just realized that the VB class tends to assume that students have little to no experience in programming, while the Java class does, which makes a huge difference.

I hastily gave my suggestion as an absolute, which is in error. Everyone learns differently, and it also depends on what kind of learning materials the person has at hand. I'll have to check what textbooks are used for the classes.
I can't wait for the day schools get the money they need, and the military has to hold bake sales to afford bombs.
2015-07-10, 2:52 PM #50
Ah! That makes sense, thanks. The main reason I probed is because, apart from a few esoteric differences a beginner would never encounter, VB.NET is the same language as C# with a slightly different syntax.
2015-07-10, 9:46 PM #51
Originally posted by Admiral Zarn:
Well, my experience is limited to where I work and such, so my saying that was mostly based on that. It's just that most students that I've seen have been stuck in Java as a beginner class, without having any previous classes on programming, analysis, or logic. They seemed to do better when switching over to VB and taking that as their first language. Also, I just realized that the VB class tends to assume that students have little to no experience in programming, while the Java class does, which makes a huge difference.

I hastily gave my suggestion as an absolute, which is in error. Everyone learns differently, and it also depends on what kind of learning materials the person has at hand. I'll have to check what textbooks are used for the classes.


Are you sure you aren't one of my instructors?
>>untie shoes
2015-07-11, 8:29 AM #52
Actually, I'm going to backpedal here (damn, where's Emon when you need him?). Over the course of the past 24 hours I have been getting more and more excited about delving into this now. A nostalgic kick on YouTube and google reminded me of just how much I've forgotten about BASIC. I found some articles, one in particular by David Brin, that really resonated (they are linked to in this article). Finally, I started looking more into Python this morning and it was just really clicking. I don't know what this will lead to for me or my son but it definitely can't hurt to start knocking mental rust off areas of my brain that probably have not been challenged for some time.
"I would rather claim to be an uneducated man than be mal-educated and claim to be otherwise." - Wookie 03:16

2015-07-12, 12:14 PM #53
So I usually check out Maximum PC for their PC builder guides and I was really close to ordering their budget package from New Egg but decided to wait.

ATI vs Nvidia? Is there a clear better answer?

SLI/Crossfire? Bang for the buck? I am the kind of guy that if I have something that has a capability, I want to try to use it. Does it make sense to buy two cards or maybe if that's the plan then you get better performance by spending the money on one better card (and then I guess another later is always a possibility).

OS? I seem to recall Jon`C opining that Windows 8 might actually be better for old games than Windows 7. Considering that I will mostly want to play older games but have the capability to run a few new games, what OS would be the way to go? By older I'm talking about stuff like C&C 3, Battle for Middle Earth, Starcraft II, etc. I do have some really old stuff I'd still like to mess with but I understand that could be finicky on anything.
"I would rather claim to be an uneducated man than be mal-educated and claim to be otherwise." - Wookie 03:16

2015-07-12, 12:23 PM #54
The only way I'd touch Windows 8 at this point would be to get the free upgrade to Windows 10. The thing is an abomination, IMO.

Not that this is Microsoft's fault, but I (unsuccessfully, I might add) wasted many, many hours of my time trying to expand the C partition to use the entire drive (I imaged the old drive and copied it to a larger one). Guess what? The OEM had placed a backup partition at the end of the drive, and DISABLED the feature in Windows 8 to remove it. Not to mention that Windows 8 forces you to copy the contents of the backup partition onto an USB drive before even finding this out. Finally, I manually removed the drive from the command line by booting into safe mode, I borked the entire system. Thanks for nothing, UEFI/Secure Boot.

It turns out that the only sure way to upgrade the SSD on a Windows 8 machine made by HP is to pay money to have them send you a flash drive containing a recovery install (this machine has no CD drive). After shipping, the whole thing was going to cost like $50 for a wimpy USB drive.

After days of frustration, I threw Linux Mint on the machine. Which was incredibly fast and easy, I should add.

I should also add that this machine was for a person who was born before Unix existed, depends on MS Office, and doesn't know a thing about Linux. And yet she finds the system easier to use than Microsoft. Not to mention that the machine virtually never needs to be rebooted or even shut down, even after upgrades.
2015-07-12, 4:46 PM #55
Nvidia and Intel for reasons that: a.) I cannot dilvulge, or b.) choose not to because I am on a phone
2015-07-13, 2:51 AM #56
Originally posted by Reverend Jones:
Wookie, you might not appreciate just how desensitized kids are these days. I have friends who practically put iPads in their children's cribs. You just can't get somebody interested in programming, unless said programming is there to amplify a gaming experience. Javascript aint as exciting as Angry Birds (or whatever the hell they're playing now.)

The desire to make new levels, skins, and hacks was the reason a lot of us came here in the first place. The promise of increasing the possibilities in an experience you are already engrossed in and obsessed with is going to be the surest way to capture the imagination.

Did you give your son Lego to play with as soon as he was old enough not to swallow it? Scripting games is the best way turn Big Kid toys like games into Lego.

Unfortunately, a lot of the games kids play these days aren't really built of out of coarse-grained objects that can be easily visualized in their entirety. The level of complexity and detail in a modern AAA game is overwhelming, and you can only hope to create content at the macro level, rather than crafting textures and surfaces from the ground up. Kind of sad, but that's why I suggested Minecraft. You should seriously check it out if you aren't already aware of it.


Dicking with COG was what got my into programming, so hey, spot on.

If you want to get the kid interested in programming, you could always set a parental lock on the router. Adversity breeds creativity.
2015-07-13, 7:50 AM #57
Well certainly Minecraft has always been on my list and another reason that I want to build a more capable PC. We have the 360 and mobile versions.
"I would rather claim to be an uneducated man than be mal-educated and claim to be otherwise." - Wookie 03:16

2015-07-19, 3:22 PM #58
Originally posted by Antony:
Are you sure you aren't one of my instructors?

Haha. Unless you've gone to school in southern Illinois few years.
I can't wait for the day schools get the money they need, and the military has to hold bake sales to afford bombs.
2015-07-19, 8:33 PM #59
Maybe it's just the same everywhere, Zarn.

Do you have a guy on staff who adamantly defends his position that absolutely everything should be written in lisp, and is treated like a hipster by the rest of the staff regardless of the fact that he's a better software engineer than any of them?
>>untie shoes
2015-07-19, 9:25 PM #60
The main reason pl is important is because it imposes common idioms and conventions that all of the developers on a project are forced to follow. Languages with stronger conventions (static typing, enforced code style, naming, one way to do things) mean teams that are easier to manage and less bike shedding and churn. This is the real reason Java owns enterprise and why lisp, a language that offers so little idiom that getting two people to agree on how something should be written is highly improbable, is nowhere to be seen.

A good engineer should know this.

And a good engineer wouldn't want to maintain someone else's lisp.
2015-07-19, 9:27 PM #61
Sexprs are great though, we shouldn't be using Json for interop, we should use lisp.
2015-07-20, 9:47 AM #62
Ocaml

Disclaimer:
<-- this person not speaking from experience
2015-07-20, 11:31 AM #63
So I'm having a hard time with syntax mostly because learning any sort of new language is pretty challenging to me. Still, I've spend a little bit of time here and there plugging away. The MIT open courses are helpful but without the lectures that the assignments presume you've had, they're a little awkward. But with the resources in the course, the web, the library, YouTube, etc. things are still moving. I'm just going to have to keep at it so the syntax sticks in my mind.

Anyway, a couple weekends ago I decided I wanted to write a little random number game. I could probably still do that relatively easily on a computer running basic that I haven't used in 30 years but I was immediately humbled that I didn't have that skill in Python. Knowing what I wanted to do, as I read, searched, and watched I was able to put all the pieces together and wrote a short program that asks you to select a maximum number for the range then randomly chooses a number for you to guess. It also calculates the maximum number of guesses it should take and makes sure valid entries are made.

Funny thing is since the language is still new to me, even though I didn't copy any part of the program, I'm still not totally fluent in my own program. I will be, I just need to keep immersed in the language. I put several comments in to keep me reminded of what I have going on. For anyone interested and for any constructive criticism, here it is:

Code:
# Steve Miller
# Random Number game

import random # Loads the Random Number Function
q = "y" # Sets the play again variable
while q != "n": # Checks that the player still wants to play
    print "Decimels are ignored in this game." # until I feel like checking for strings AND floats, this will ensure that players don't assume odd or unpredicted behavior if they try decimels.  All numbers are converted to integers.

    maximum = 0 # Sets the maximum number variable
    optimum_attempts = 2 # Sets the minimum valid optimum attempts
    attempts = 0 # Sets the actual attempts at guessing variable
    while (maximum < 2): # This while loop runs until the player choose a number higher than 1
        while True: # This while, try, except loop ensures that the player enters a number
            try:
                maximum = int(float(raw_input("I am going to choose a number from 1 to a maximum value you select. Input the maximum value:")))
                break
            except ValueError:
                print "Invalid Selection"
        if maximum < 2: # checks that number is at least 2
            print "Invalid Selection"
    tempcalc = maximum # variable used to calculate optimum number of attempts
    while tempcalc/2 != 1: # This while loop will divide the maximum number set by the player by two until a result of one is reached
            if tempcalc/2 > 1: # The number of times this can be done plus two are the maximum number of times a player playing perfectly should have to guess
                tempcalc /= 2
                optimum_attempts += 1
    # Once all variables are satisfied and calculations made the guessing begins
    print "I am thinking of a number from 1 to", maximum, "."
    randnum = random.randrange(1,maximum+1) # chooses a randum number from 1 to the players maximum
    guess = 0 # Ensures that any previous guess is cleard
    while (guess != randnum): # This while loop runs until the number has been correctly chosen
        while True: # This while, try, except loops ensures the guess is a number
            try:
                guess = int(float(raw_input("What is it!")))
                attempts += 1 # equals number of tries
                break
            except ValueError:
                print "Please choose a number."
        if guess == randnum: # correct response
            print "That's right! That took you ", attempts, "tries. ", optimum_attempts, "or less is a perfect run."
        elif guess < randnum: # too low response
            print "Too low!"
        else: # too high response, not checked mathmatically, only logical remaining possibility
            print "Too high!"
    q = raw_input("Go again (y/n)?") # These three lines check if the player wants to keep going
    if q != "n":
        print " Well, that's not an 'n'!"
print "Thanks for playing, that was fun!"


One small change and comments removed:
Code:
import random
q = "y"
while q != "n":
    print "Decimels are ignored in this game."
    maximum = 0
    optimum_attempts = 2
    attempts = 0
    while (maximum < 2):
        while True:
            try:
                maximum = int(float(raw_input("I am going to choose a number from 1 to a maximum value you select. Input the maximum value:")))
                break
            except ValueError:
                print "Invalid Selection"
        if maximum < 2:
            print "Invalid Selection"
    tempcalc = maximum
    while tempcalc/2 != 1:
            if tempcalc/2 > 1:
                tempcalc /= 2
                optimum_attempts += 1
    print "I am thinking of a number from 1 to", str(maximum)+"."
    randnum = random.randrange(1,maximum+1)
    guess = 0
    while (guess != randnum):
        while True:
            try:
                guess = int(float(raw_input("What is it!")))
                attempts += 1
                break
            except ValueError:
                print "Please choose a number."
        if guess == randnum:
            print "That's right! That took you ", attempts, "tries. ", optimum_attempts, "or less is a perfect run."
        elif guess < randnum:
            print "Too low!"
        else:
            print "Too high!"
    q = raw_input("Go again (y/n)?")
    if q != "n":
        print " Well, that's not an 'n'!"
print "Thanks for playing, that was fun!"
"I would rather claim to be an uneducated man than be mal-educated and claim to be otherwise." - Wookie 03:16

2015-07-20, 1:52 PM #64
Mit ocw lectures should all be on yoytube
2015-07-20, 4:32 PM #65
Oh that'll be nice. I'll have to check. Thanks.
"I would rather claim to be an uneducated man than be mal-educated and claim to be otherwise." - Wookie 03:16

2015-07-30, 5:07 PM #66
So TIS-100 just happened to catch my eye on GOG's youtube channel. I might check it out.
"I would rather claim to be an uneducated man than be mal-educated and claim to be otherwise." - Wookie 03:16

2015-07-30, 7:58 PM #67
Oh god, I seen that on Steam. Looks like a headache simulator.
SnailIracing:n(500tpostshpereline)pants
-----------------------------@%
2015-07-31, 6:40 AM #68
Wow, a new Zachtronics game? And here I am still muddling about with Infinifactory and SpaceChem. I will definitely check that out. Looks right up my alley.
"it is time to get a credit card to complete my financial independance" — Tibby, Aug. 2009
2015-08-24, 12:33 PM #69
Originally posted by Jon`C:
seriously though, don't make a kid learn lisp.


John C seemed to disagree, at least at the time he made the decision to have his own 10 y.o. kid use Racket to make a game.
2015-08-24, 1:26 PM #70
[QUOTE=John Carmack]My wife managed programmers for years, and she has opinions about pragmatic developers, which usually involve Java or C++. I tend to think that worrying about our 10 year old's future career prospects is a bit premature, and want to focus on developing abstract programming skills. :-)

Unity/C# can be incredibly rewarding, but the entire ecosystem almost drives you away from programming as a beginner -- find the right script on the asset store and figure out how to configure it in the editor, rather than reinventing the wheel and writing it yourself.

One of the non-obvious things that I think is beneficial with DrRacket is that it has an approachable complexity level. Dropping a newbie into Eclipse or MonoDevelop makes them feel like they are walking around in a byzantine museum, afraid to touch things, while DrRacket feels closer to old-school personal computers where you felt like you were in command of the machine.[/QUOTE]

.
2015-08-28, 3:27 PM #71
It's funny how we think about our kids prospects for the future. John C seems to think that his child must me be involved in programming. I'm merely interested in making sure that mine has some sort of exposure to it. Neither he nor I (my son or I) seem to have any idea what he will do in the future.
"I would rather claim to be an uneducated man than be mal-educated and claim to be otherwise." - Wookie 03:16

2015-08-28, 3:52 PM #72
I'm not sure that Carmack ever hinted that he'd like for his son to become a professional programmer.

As far as your claim that the language doesn't matter (so long as your son gets some exposure), I guess it just depends whether or not care to impart the idea of programming as abstraction and as a way of organizing analytical ideas, rather than simply rearranging pieces in a mechanical fashion in order to achieve a desired effect. You don't need an education for the second one, and it certainly is far better than nothing--but there's so much more to programming than tinkering and debugging. (See my post ITT about SICP.)
2015-08-28, 6:58 PM #73
Originally posted by Reverend Jones:
there's so much more to programming than tinkering and debugging. (See my post ITT about SICP.)
yeah: it's also typing practice
2015-08-28, 7:09 PM #74
Well that's certainly a depressing view of the discipline (however informed by experience it might be).

I like to think that when you aren't up against deadlines, there's always a chance to imbue your work with artistic touches that don't necessarily solve them problem at hand, but inch toward some other nebulous ideal in the back of your mind, or otherwise tickle the mind. If programming were just about getting the computer to do what I wanted, I wouldn't be interested in it at all. I guess this is why I'm not a professional programmer, but at least in my case, if I don't learn something new, it's not worth it to me.
2015-08-29, 1:11 AM #75
I'm not sure what you mean by 'nebulous ideals'. If you're talking about some quasi-objective measure of code quality and maintainability, then no. You're always up against deadlines and there's never enough room in the budget to deal systematically with technical debt.
2015-08-29, 1:21 AM #76
Originally posted by Jon`C:
I'm not sure what you mean by 'nebulous ideals'. If you're talking about some quasi-objective measure of code quality and maintainability, then no. You're always up against deadlines and there's never enough room in the budget to deal systematically with technical debt.


I'm willing to concede that you're right, so long as we're talking about programming as an engineering discipline. I guess I was just trying to say that programming in general doesn't have to be about efficiently making an artifact. Maybe for some people it's just for screwing around and having fun. Using a mind-expanding language is a big part of that for some people, and I especially think this is a salient point when we remember we're talking about a 10-year-old, not an educated adult.
2015-08-29, 1:24 AM #77
Originally posted by Jon`C:
I'm not sure what you mean by 'nebulous ideals'.


I never defined it. I shouldn't have to define the word nebulous, because its very purpose is to refer to things which are unknown. In this case, it refers to whatever the hell the programmer cares about, aside from being an efficient engineer. For example, maybe the programmer wants to experiment with some new language feature, solely because s/he finds it enjoyable.
2015-08-29, 1:25 AM #78
Also, Smalltalk.

(And yeah, I know it had problems, especially with performance, which plays exactly into your point.)
2015-08-29, 1:52 AM #79
People who enjoy coding for the sake of coding usually aren't very good at it.
2015-08-29, 9:21 AM #80
Wow. You really do have tunnel vision here. Not everybody who enjoys programming is a hamster on the wheel in an industrial setting. There's more to life than being the best at something according to some efficiency metric. If I buy a Corvette, is it more important that I become a professional race car driver, or that my enjoyment from driving it enhances several other dimensions of my life?

Also, your last retort is both obvious and also irrelevant. It's not too hard to see that people who "enjoy coding for the sake of coding" (as you put it) indeed are not the best software engineers in most cases. Alan Kay or your 10 year old kid are not even trying to be software engineers, though, so stop trying to apply your narrow metric about what makes the activity worthwhile to what is essentially a research activity. I bet you didn't like Hardy's "A Mathematician's Apology", either.
123

↑ Up to the top!