What and Where to Program?

So, I am kind of in a rut here when it comes to programming. I about finish my 2nd year college as a biochemistry major, and my end goal here is to go to medical school. Programming has always fascinated me, and I am somewhat familiar with c, and even more with java.

  • My first problem that I would love to hear suggestions about is how do I become a better developer and learn more languages like ruby, python, c++, etc but still not complete commit myself to computer science because I have MCATs and med school to worry about?
  • the second thing is the part of programming that interests me the most is networking, stuff like socket programming and computer security. Specifically, I want to be able to interact with remote servers, routers, and what not. I barely know anything about TCP/IP protocol, and tbh, I just don't know where to begin. I have been thinking about maybe turning my current HP dv7t quad edition into a some sort of server that can help me learn, but I dont know...

 

i can say that bucky's c++ and C tutorials on youtube are pretty good. 

node.js comes to mind after reading your post, I haven't got to much experience with it myself though so I can't say for sure, I know a collegue of mine has managed to write a IRC client in node at least. You can do pretty much network programming with Java as well so C++/Java feels at par with eachother, at least on that level.

https://class.coursera.org/programming1-2012-001/auth/welcome?type=logout&visiting=%2Fprogramming1-2012-001%2Fclass%2Findex

A friend of mine gave me this site in which you can learn Python, It's actually from the University of Toronto. The classes are over right now but you can still check the online videos that they have, and if you get 70% or more when the actuall class starts you can get a certificate.

(sorry for my spelling English isn't my main language)

Java is definitely a good start for networking. It has plenty of very good libraries for all kinds of networking stuff so that you do not have to go into low level details if you do not want to.

However, it is quite a long jump from basic socket programming to computer security (I assume it is network security) so it will require a considerable level of commitment. I would really advise you to grab a textbook on "Computer Networks" and start reading it. This will provide you with necessary theoretical basis (for example, TCP/IP represent only two network layers; there are several other layers that are equally important in network security) and practical programming exercises (like writing a basic socket communication between TCP or UDP client and server). If you can sucessfully finish Computer Networks then you can proceed to network security. Otherwise, there is no point in trying to grasp network security as a developer without understanding the underlying networking principles.

 

You're interested in things like SSL and also want to learn C++? I recommend downloading POCO, it is a networking library for c++, it will allow you to create tcp servers, logging systems and server applications with a relativley simple code footprint.

Poco's TCP Server does about 90% of the work for you but it always helps to know how tcp and sockets work

You're interested in things like SSL and also want to learn C++? I recommend downloading POCO, it is a networking library for c++, it will allow you to create tcp servers, logging systems and server applications with a relativley simple code footprint.

Poco's TCP Server does about 90% of the work for you but it always helps to know how tcp and sockets work

node.js is really good for high-level networking but if you're more interested in low level networking I'd go for c.

To understand what switches router etc do you might also want to build your own simple switch (atmega/arduino) and write or modify a full tcp/ip stack. But it is probably too much for a side project.

Anyhow, have fun and just start hacking.