Software Development and Programming Careers (Official Discussion Thread)

kevm3

follower of Jesus
Supporter
Joined
May 2, 2012
Messages
16,291
Reputation
5,551
Daps
83,479
I really wish I had more time because there are so many subjects to learn. Once I get settled in with all the web development technologies, then I can really begin studying algorithms and data structures and math as well. Right now I've got to focus on server-side programming, MVC, SQL, etc. as well as honing in on my front-end skills. Once I've got all that down, I'll be free to really increase my fundamental programming skills.

On another note, does anyone use Vim? I hear about a lot of people using it, but I'm curious as to what makes it so great. It supposedly has a steep learning curve, so is it worth it to learn it over just using a text editor/ide?
 

///Vega+++

All Star
Joined
Jun 7, 2012
Messages
4,682
Reputation
-221
Daps
7,868
I really wish I had more time because there are so many subjects to learn. Once I get settled in with all the web development technologies, then I can really begin studying algorithms and data structures and math as well. Right now I've got to focus on server-side programming, MVC, SQL, etc. as well as honing in on my front-end skills. Once I've got all that down, I'll be free to really increase my fundamental programming skills.

On another note, does anyone use Vim? I hear about a lot of people using it, but I'm curious as to what makes it so great. It supposedly has a steep learning curve, so is it worth it to learn it over just using a text editor/ide?
I'm a sysadmin so I use vim a lot for quick editing of system config files, bash/crontab scripts, whatever but if I were to do intense coding I wouldn't favor it, too many keys combinations to learn imo. I read there's a mode to make it work with a mouse but I haven't found/really looked for it yet.
it does have some cool features like the ability to set auto-indentation style for a specific language or using some sed-like commands for text substitutions. I use the later quite a lot too.
 

kevm3

follower of Jesus
Supporter
Joined
May 2, 2012
Messages
16,291
Reputation
5,551
Daps
83,479
I'm a sysadmin so I use vim a lot for quick editing of system config files, bash/crontab scripts, whatever but if I were to do intense coding I wouldn't favor it, too many keys combinations to learn imo. I read there's a mode to make it work with a mouse but I haven't found/really looked for it yet.
it does have some cool features like the ability to set auto-indentation style for a specific language or using some sed-like commands for text substitutions. I use the later quite a lot too.

Thanks for the breakdown. I'll probably hold off on it as I have too much other information I need to absorb.

How long have you been programming for? This thread isn't seeing much activity, but I'll probably start posting my different research on different aspects in here as well as my blog on subjects such as data structures and the such. I guess programming is a bit of a niche subject.
 

kevm3

follower of Jesus
Supporter
Joined
May 2, 2012
Messages
16,291
Reputation
5,551
Daps
83,479
I'm going to take some time and put various observations from my studies here. Hopefully it will help someone and if you notice any errors, correct me if I'm wrong:

Stack - A data structure where items are placed in sequential order using the push and pop operation. Arrays are typically, although not always, used as a base structure for stacks. They are similar to arrays in many regards, although more restrictions apply to stacks. Stacks differ from arrays in that with stacks, you can only put items at the end with the 'push' operation, or take operations from the end with the 'pop' operation. You cannot access, place or remove items at random indexes, like you can with arrays. You are limited to pushing items to the end, taking them off the end(pop) or looking at which item is at the end (peek).

Stacks have often been compared to cleaning a pile of dishes. When you get new dishes, you stack them on top of each other, and you start cleaning with the last dish that was put in. In other words, stacks operate on a LIFO process (last-in, first-out). The last item in and the first item that is processed and removed.
 
Last edited:

///Vega+++

All Star
Joined
Jun 7, 2012
Messages
4,682
Reputation
-221
Daps
7,868
How long have you been programming for?
I learned computer science from like 2002 to 2004, "in and out" between 06 and 09, I was not a very good student, not focused and not very driven. I finally "got" Java sometime around 09, I learned C first, some prolog (I liked it a lot but it's almost exclusively academically oriented. Might give an incentive to foray into AI stuff though). I never was much into web-oriented languages like php. learned solely to complete some courses. Used Visual Basic for an internship once, but it's a pretty meh language.
I'm also an avid Linux user obviously. I started with mandrake way back, then Ubuntu/Debian. At my job our servers are mostly Red Hat/CentOS and I must say I prefer this distribution now. Anyway Linux is just huge. I learn new stuff every other day. I also do some network stuff, we have some Juniper switches and Fortigate firewalls. I actually think of taking the CCNA exam before the end of the year.
This thread isn't seeing much activity, but I'll probably start posting my different research on different aspects in here as well as my blog on subjects such as data structures and the such. I guess programming is a bit of a niche subject.
hey you're on the coli after all. I think most guys here who might be in the field are not heavy posters.
I'm going to take some time and put various observations from my studies here. Hopefully it will help someone and if you notice any errors, correct me if I'm wrong:
good idea.
the other difference between stacks and arrays is the limitation in size. Stacks can grow as much as the OS allows it, arrays have to be allocated a definite amount of memory whether statically (compilation time ) or dynamically (runtime)
I'd also add that linked lists are IMO a more intuitive data structure for stack implementation
 

Trustus

Black like the planet that they fear
Supporter
Joined
May 31, 2012
Messages
697
Reputation
1,170
Daps
2,221
I learned computer science from like 2002 to 2004, "in and out" between 06 and 09, I was not a very good student, not focused and not very driven. I finally "got" Java sometime around 09, I learned C first, some prolog (I liked it a lot but it's almost exclusively academically oriented. Might give an incentive to foray into AI stuff though). I never was much into web-oriented languages like php. learned solely to complete some courses. Used Visual Basic for an internship once, but it's a pretty meh language.
I'm also an avid Linux user obviously. I started with mandrake way back, then Ubuntu/Debian. At my job our servers are mostly Red Hat/CentOS and I must say I prefer this distribution now. Anyway Linux is just huge. I learn new stuff every other day. I also do some network stuff, we have some Juniper switches and Fortigate firewalls. I actually think of taking the CCNA exam before the end of the year.
hey you're on the coli after all. I think most guys here who might be in the field are not heavy posters.

So, you are in the command line interface all day right? No GUI for you right? How many commands do you use a day and how did you learn then? I take it you right your own scripts to automate your tasks?
I'm learning Web Development also trying to learn linux (CENTOS) and networking. I took a course on Powershell for networking I felt overwhelmed.
The first programming language I learned was BASIC > Visual Basic > Javascript. I'm taking C in the fall along with a Ruby and ASP.Net course.
I've noticed with web development (using SASS, Git) it pays to know how to navigate your computer and servers through the command line interface. I know the basic like cd, mv,ls,echo,rm, What gets me is the switches and piping I get lost after that.
 

kevm3

follower of Jesus
Supporter
Joined
May 2, 2012
Messages
16,291
Reputation
5,551
Daps
83,479
So, you are in the command line interface all day right? No GUI for you right? How many commands do you use a day and how did you learn then? I take it you right your own scripts to automate your tasks?
I'm learning Web Development also trying to learn linux (CENTOS) and networking. I took a course on Powershell for networking I felt overwhelmed.
The first programming language I learned was BASIC > Visual Basic > Javascript. I'm taking C in the fall along with a Ruby and ASP.Net course.
I've noticed with web development (using SASS, Git) it pays to know how to navigate your computer and servers through the command line interface. I know the basic like cd, mv,ls,echo,rm, What gets me is the switches and piping I get lost after that.

For most web development, you don't really need to be a command line master. Just knowing the basic things like git commands, changing directories, etc.

Here's a book about the basics of what will come in useful.
http://cli.learncodethehardway.org/book/
 

Trustus

Black like the planet that they fear
Supporter
Joined
May 31, 2012
Messages
697
Reputation
1,170
Daps
2,221
For most web development, you don't really need to be a command line master. Just knowing the basic things like git commands, changing directories, etc.

Here's a book about the basics of what will come in useful.
http://cli.learncodethehardway.org/book/
Thanks for the book, I see alot of cats use command line driven apps so, I want to be fluent in the command line plus its a good skill to have if I go the MEAN stack or the LAMP stack I know I will need that skill.
 

Trustus

Black like the planet that they fear
Supporter
Joined
May 31, 2012
Messages
697
Reputation
1,170
Daps
2,221
I see you use JavaScript, do get tripped up by its syntax sometime? i.e. for loops and data types by not declaring them. Sometimes I get confused, I think I should stick with one language
 

kevm3

follower of Jesus
Supporter
Joined
May 2, 2012
Messages
16,291
Reputation
5,551
Daps
83,479
I see you use JavaScript, do get tripped up by its syntax sometime? i.e. for loops and data types by not declaring them. Sometimes I get confused, I think I should stick with one language

What trips me up about Javascript is how strange OO programming is in it. The 'this' keyword can be headache inducing as well.
With JS, you don't have to declare data types. Your data-type is determined by the interpreter once you assign the variable.

For example, in some other language, you might have to do something like
int a = 5
double b = 20
string c = "hi"
boolean d = false

in JS, all you do is
var a = 5
var b = 20
var c = "hi"
var d = true

for loops are simple and are fairly consistent across most languages
for(a=0; a<10; a++)
{
console.log("test")
}

a=0 is the initialization phase, where you declare and give initial values to the variable to be used as a counter. the second part, a<10, is the condition that is tested, and if true, the loop will continue running. the last part is the increment phase, which increments the counter variables after the block is run.

in other words, it would be something similar to this:

var a = 0;
while(a < 10){
console.log("test");
a = a + 1;
}
 

Trustus

Black like the planet that they fear
Supporter
Joined
May 31, 2012
Messages
697
Reputation
1,170
Daps
2,221
I see what you saying. I'm still getting use to the whole object oriented programming, I'm still a newbie when comes to programming (1 < year ). Visual Basic was way more strict than JS.
My fault I meant if statements in VB are more strict if it isn't written the correct way you get errors you have to write
if (a < b ) then
// Do something here
end if

while in JS
if (a < b ) {
// Do something here
}

I'm doing VB only because its required don't think I'll go that route (.NET) I do like JS better, I'm learning it at code academy and treehouse. Now I have to figure out how to make something on my own.
 

kevm3

follower of Jesus
Supporter
Joined
May 2, 2012
Messages
16,291
Reputation
5,551
Daps
83,479
I see what you saying. I'm still getting use to the whole object oriented programming, I'm still a newbie when comes to programming (1 < year ). Visual Basic was way more strict than JS.
My fault I meant if statements in VB are more strict if it isn't written the correct way you get errors you have to write
if (a < b ) then
// Do something here
end if

while in JS
if (a < b ) {
// Do something here
}

I'm doing VB only because its required don't think I'll go that route (.NET) I do like JS better, I'm learning it at code academy and treehouse. Now I have to figure out how to make something on my own.

Yeah, I have no idea why some unis waste time with visual basic when there are other languages that are simple to learn the basics of but more widely used. Python is one example.

With Javascript, you have to get a linter in order to receive errors while you are writing. The beauty of JS and HTML/CSS is that you can experiment and instantly see your results. Write your code, save and open the result in a browser. You'll want to spend your time learning HTML and CSS, because that's what Javascript interacts with on the front end. Actually JS interacts with the DOM (Document Object Model), which then alters elements on the page.
 

///Vega+++

All Star
Joined
Jun 7, 2012
Messages
4,682
Reputation
-221
Daps
7,868
So, you are in the command line interface all day right? No GUI for you right? How many commands do you use a day and how did you learn then? I take it you right your own scripts to automate your tasks?
I'm learning Web Development also trying to learn linux (CENTOS) and networking. I took a course on Powershell for networking I felt overwhelmed.
The first programming language I learned was BASIC > Visual Basic > Javascript. I'm taking C in the fall along with a Ruby and ASP.Net course.
I've noticed with web development (using SASS, Git) it pays to know how to navigate your computer and servers through the command line interface. I know the basic like cd, mv,ls,echo,rm, What gets me is the switches and piping I get lost after that.
yup. I manage 40+ servers. About 7 of them on Windows Server 2008, the rest on Linux, so yeah I spend a lot of time on the command line.
the commands I use the most are sudo vim grep top ls df du tar nohup most I knew before this job, some I discovered on the job are lsof sar vmstat fuser
I also developped the bad habit of writing for loops on the fly when I have to quickly compress a bunch of log files in a directory a la
for log in $(ls logfolder);do tar -czvf $(dirname $log)/$(basename $log).tar.gz $log && rm -vf $log;done
fuuuun !
but since it can be error prone it might be more cautious to write it in a file , say cpress.sh chmod it (chmod +x cpressh.sh), nohup it (nohup ./cpress.sh &) and tailf your nohup.out away (tailf nohup.out) to check the output the -v flag meaning verbose
basically you learn as you do. and if you like coding, learning linux commands won't be a problem
 

kevm3

follower of Jesus
Supporter
Joined
May 2, 2012
Messages
16,291
Reputation
5,551
Daps
83,479
I'm finally starting to get into a solid routine. I really enjoy using Ruby on Rails as I find that Rails encourages excellent practices since things like testing is built right into the framework. On the front end, I've been checking out Ember.js, which is an MVC framework. So far I'm finding it quite enjoyable. Now, I'm going to have to find out how data is passed between the server and the client and integrate RoR with ember.

RubyMine is a great IDE once you get the hang of it since it has just about everything you need integrated into it. Being able to go into the command-line in the program is a beautiful thing.
 
Top