Software Development and Programming Careers (Official Discussion Thread)

kevm3

follower of Jesus
Supporter
Joined
May 2, 2012
Messages
16,301
Reputation
5,571
Daps
83,590
Nice post man

I think it can be easy to stay in the safe zone and try to 'understand everything' before you attempt it, but to really progress as a programmer, you have to be willing to make yourself uncomfortable.

Something I think programmers should learn to do is take a big concept that you want to do, for example make a game, and learn to subdivide it into smaller and smaller modules, and then take a day or a week and FORCE yourself to learn that specific module. When you have these smaller, functional pieces, you will eventually be able to combine them into a larger, cohesive whole.

One thing I want to do is to be able to make a game like an rpg, so one of my smaller goal is to learn to make display tile maps. Then, after that I can focus on efficiently making sprites move across that map. Then, deal with collision detection. Then, deal with events.
 

Oh1one

Motherland funk
Joined
May 2, 2012
Messages
388
Reputation
30
Daps
314
Reppin
Joburg
Finally started the cs50x Intro to Comp Science online cert. Need to be able to make a prototype of something then I'll take it from there.
 

Data-Hawk

I have no strings on me.
Joined
May 6, 2012
Messages
8,420
Reputation
1,985
Daps
16,303
Reppin
Oasis
Nice post man

I think it can be easy to stay in the safe zone and try to 'understand everything' before you attempt it, but to really progress as a programmer, you have to be willing to make yourself uncomfortable.

Something I think programmers should learn to do is take a big concept that you want to do, for example make a game, and learn to subdivide it into smaller and smaller modules, and then take a day or a week and FORCE yourself to learn that specific module. When you have these smaller, functional pieces, you will eventually be able to combine them into a larger, cohesive whole.

One thing I want to do is to be able to make a game like an rpg, so one of my smaller goal is to learn to make display tile maps. Then, after that I can focus on efficiently making sprites move across that map. Then, deal with collision detection. Then, deal with events.

Cool. This was recently put up

http://unity3d.com/learn/tutorials/projects/2d-roguelike

 

kevm3

follower of Jesus
Supporter
Joined
May 2, 2012
Messages
16,301
Reputation
5,571
Daps
83,590
Man I'm simply addicted to all things related to programming and computing. I really wish I had started earlier, but oh well.
 

Krazy

Rifle weh taller dan palm tree
Joined
Dec 29, 2012
Messages
9,723
Reputation
1,296
Daps
26,909
Reppin
Judgement Yard
Looking into programming/software dev
For those that do it for a job, is it enjoyable?
 

Type Username Here

Not a new member
Joined
Apr 30, 2012
Messages
16,368
Reputation
2,385
Daps
32,641
Reppin
humans
Looking into programming/software dev
For those that do it for a job, is it enjoyable?

I enjoy it. You just have to find the right environment that fits you. My schedule is extremely flexible, my work environment laid back, I can work from home, etc.

It does get a bit stressful when there is large code deployment and deadlines but not more than any other job. The part that I love is that I am always learning and using my brain to solve problems.

There are nightmare stories out there though.
 

kevm3

follower of Jesus
Supporter
Joined
May 2, 2012
Messages
16,301
Reputation
5,571
Daps
83,590
I'm really enjoying learning C++ and Java. I really have to get a hold of C++ pointers. I have somewhat of an idea of them, but it's not fully ingrained yet.

Had a solid day of learning... FINALLY figured out what exactly static properties and methods are because I'm finally starting to wrap my head around classic OO after doing Prototypal OO for so long.

Something I enjoy about the two aforementioned languages is they have many more built-in features than Javascript. Having to state types makes it a lot easier to read code as well, although you do lose a bit of flexibility.
 
Last edited:

Data-Hawk

I have no strings on me.
Joined
May 6, 2012
Messages
8,420
Reputation
1,985
Daps
16,303
Reppin
Oasis
Brehs, if you plan on doing YouTube videos. Stay away from cam studio. Program wreak havoc on my computer Friday. Almost lost everything. Luckily I was able to restore to a restore point from last week..
 

Nomadum

Woke Dreamer
Joined
Dec 23, 2014
Messages
4,622
Reputation
-705
Daps
9,074
Reppin
Nothing
I want to teach myself coding. I plan on going into Network Security and figured if I had the learned ability to code programs then I could strengthen security knowledge and know-how by coding my own protective/defense programs to deploy in my work. maybe I'm thinking too grand and large, but Coding is some ill shyt to learn.
 

kevm3

follower of Jesus
Supporter
Joined
May 2, 2012
Messages
16,301
Reputation
5,571
Daps
83,590
I've been delving into C++ and Java lately, but mostly C++. Overall, I'm finding it much more pleasant than doing front-end development. Javascript is a decent language, but it's missing a ton of features in other languages, which you have to plug in doing all kinds of work-arounds. Also, you never know exactly which version of JS you can use and which features because you have to accommodate all kinds of different browsers, which may or may not have the features you want to use available. I'll probably come back around to JS later, but for now, this is much more interesting.
 

Regular_P

Just end the season.
Joined
May 1, 2012
Messages
78,809
Reputation
9,823
Daps
212,149
I fell off the wagon with learning in late August. You guys motivated me to get back at it. I was getting somewhere with Javascript before I stopped and I'm finding it quite a bit easier to pick up the second time around.
 

kevm3

follower of Jesus
Supporter
Joined
May 2, 2012
Messages
16,301
Reputation
5,571
Daps
83,590
Sometimes it takes a great book to simplify things for you. You might come upon a reference manual type of book and it makes things overly complex. I felt that way when I looked at all of the 'data types' a language like C# or C++ had, but it's a lot simpler when I realized that a lot of them were simply slight variations on a few base types

you have several types of ints, which are all 'ints' but some bigger or smaller than others
short
int
long
long long

then you have a couple of floats
float
double

These two data types can come in signed and unsigned varieties. Signed means it can be negative. Unsigned means it can't be negative. Unsigned variables typically allow a wider range of values in the positive direction since they don't have to accoutn for negative numbers.
 

keepemup

Banned
Joined
Jun 9, 2012
Messages
4,743
Reputation
-982
Daps
5,349
Sometimes it takes a great book to simplify things for you. You might come upon a reference manual type of book and it makes things overly complex. I felt that way when I looked at all of the 'data types' a language like C# or C++ had, but it's a lot simpler when I realized that a lot of them were simply slight variations on a few base types

you have several types of ints, which are all 'ints' but some bigger or smaller than others
short
int
long
long long

then you have a couple of floats
float
double

These two data types can come in signed and unsigned varieties. Signed means it can be negative. Unsigned means it can't be negative. Unsigned variables typically allow a wider range of values in the positive direction since they don't have to accoutn for negative numbers.
I think I pretty much alluded to this programming languages do very much the same thing, sure there are different conventions but apart from the paradigms of programming the concept is a rehash.

I got a few questions for you programming guys here.

How do you know when a variable is stored in ROM or RAM?

What is an interrupt vector?

What is a watchdog timer?

Provide an example of an inadvertent RAM overwrite ie data corruption (informally known as 'ram whacking', data corruption).

What is the difference between NVRAM and RAM?
 

kevm3

follower of Jesus
Supporter
Joined
May 2, 2012
Messages
16,301
Reputation
5,571
Daps
83,590
I think I pretty much alluded to this programming languages do very much the same thing, sure there are different conventions but apart from the paradigms of programming the concept is a rehash.

I got a few questions for you programming guys here.

How do you know when a variable is stored in ROM or RAM?


What is an interrupt vector?

What is a watchdog timer?

Provide an example of an inadvertent RAM overwrite ie data corruption (informally known as 'ram whacking', data corruption).

What is the difference between NVRAM and RAM?

Thanks for the questions. This will be a very useful exercise for many of the guys here to start researching in order to increase their skills. I may be wrong, but here are my answers as following. I'll spoiler them in case someone else wants to answer them as well:
1) Normal variables are typically stored in RAM, aka random access memory, since you still need to have the ability to read (get) and write(set) those variables. Constants, on the other hand, are stored in ROM, aka read-only memory, since you are forbidden to change it's value.

2) Code executes sequentially, line by line, and essentially, what an interrupt does is sends a signal to stop that execution and jump to a region in memory where code to handle that interrupt is stored. After it is handled, then the program goes back to where it was and continues execution. One such example is pressing the button on a keyboard, which sends an interrupt is sent to the processor to notify it that an 'event' has happened. An interrupt vector is the memory address of an interrupt handler.

Sources for that information:
http://www3.nd.edu/~lemmon/courses/ee224/web-manual/web-manual/lab7/node5.html

http://www.embedded.com/electronics...ng-to-terms-with-interrupt-vectors-and-tables

3) A watchdog timer is a device that performs an action after a period of time has elapsed during which a computer has come across an error and hasn't been able to recover on its own. For example, when you come across some system error in windows, the system may eventually reboot on it's own instead of being prompted by you. Source:

http://searchmobilecomputing.techtarget.com/definition/watchdog-timer

4) Memory corruption occurs when you overwrite values in a memory address that you didn't mean to, for example by attempting to access and write to memory outside of an array, aka array out of bounds error.

Another example is if you use a variable that you didn't initialize, you will often get some random address in memory when you access that variable. This can lead to memory corruption as well.

5) RAM is volatile, meaning as soon as the machine is powered off, it's contents are wiped. NVRAM is a type of ram that is nonvolatile, meaning that it's information is still retained after being powered off.
 
Top