• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 15:51
CET 21:51
KST 05:51
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
RSL Season 3 - Playoffs Preview0RSL Season 3 - RO16 Groups C & D Preview0RSL Season 3 - RO16 Groups A & B Preview2TL.net Map Contest #21: Winners12Intel X Team Liquid Seoul event: Showmatches and Meet the Pros10
Community News
Weekly Cups (Nov 24-30): MaxPax, Clem, herO win2BGE Stara Zagora 2026 announced15[BSL21] Ro.16 Group Stage (C->B->A->D)4Weekly Cups (Nov 17-23): Solar, MaxPax, Clem win3RSL Season 3: RO16 results & RO8 bracket13
StarCraft 2
General
Chinese SC2 server to reopen; live all-star event in Hangzhou Maestros of the Game: Live Finals Preview (RO4) BGE Stara Zagora 2026 announced Weekly Cups (Nov 24-30): MaxPax, Clem, herO win SC2 Proleague Discontinued; SKT, KT, SGK, CJ disband
Tourneys
Sparkling Tuna Cup - Weekly Open Tournament RSL Offline Finals Info - Dec 13 and 14! StarCraft Evolution League (SC Evo Biweekly) RSL Offline FInals Sea Duckling Open (Global, Bronze-Diamond)
Strategy
Custom Maps
Map Editor closed ?
External Content
Mutation # 502 Negative Reinforcement Mutation # 501 Price of Progress Mutation # 500 Fright night Mutation # 499 Chilling Adaptation
Brood War
General
[ASL20] Ask the mapmakers — Drop your questions BW General Discussion Which season is the best in ASL? Data analysis on 70 million replays BGH Auto Balance -> http://bghmmr.eu/
Tourneys
[Megathread] Daily Proleagues [BSL21] RO16 Group D - Sunday 21:00 CET [BSL21] RO16 Group A - Saturday 21:00 CET [BSL21] RO16 Group B - Sunday 21:00 CET
Strategy
Current Meta Game Theory for Starcraft How to stay on top of macro? PvZ map balance
Other Games
General Games
Path of Exile Nintendo Switch Thread Stormgate/Frost Giant Megathread ZeroSpace Megathread The Perfect Game
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Mafia Game Mode Feedback/Ideas TL Mafia Community Thread
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread Things Aren’t Peaceful in Palestine The Big Programming Thread Artificial Intelligence Thread
Fan Clubs
White-Ra Fan Club
Media & Entertainment
[Manga] One Piece Movie Discussion! Anime Discussion Thread
Sports
2024 - 2026 Football Thread Formula 1 Discussion NBA General Discussion
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
Where to ask questions and add stream? The Automated Ban List
Blogs
I decided to write a webnov…
DjKniteX
Physical Exertion During Gam…
TrAiDoS
James Bond movies ranking - pa…
Topin
Thanks for the RSL
Hildegard
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1259 users

The Big Programming Thread - Page 246

Forum Index > General Forum
Post a Reply
Prev 1 244 245 246 247 248 1032 Next
Thread Rules
1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution.
2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20)
3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible.
4. Use [code] tags to format code blocks.
mcc
Profile Joined October 2010
Czech Republic4646 Posts
February 15 2013 12:38 GMT
#4901
On February 15 2013 13:17 aurum510 wrote:
Show nested quote +
On February 15 2013 12:56 Abductedonut wrote:
On February 15 2013 12:18 Cyx. wrote:
Hey guys, I'm currently taking a year off of university and I'm going back into second-year software engineering next year. I have a decent grasp of some of the basics of the programming I'm going to be learning next year (a university course in C++ last year and some hobby programming in Python in highschool and C++/Python in university) but I want to get a bit of a head start on some of the topics I'm going to be learning next year like pointers, sorting algorithms, basic Java programming... basically second-year CS courses.

Are there any good places on the internet to help me get the kind of head start I want? At this point I'm basically reduced to reading my roommate's textbooks (he's in the second year of the program right now) and working through his old lab exercises and stuff from the fall, which is actually pretty good practice except that I have a hard time just picking up his textbook and figuring out what I want to be looking at unless he's right there with me. Also, as someone who's planning on being a civil engineer, not a software engineer, he doesn't really understand a lot of the stuff on the level that I want to and even he and the textbook combined can't really give me everything I need.

I know it's a bit of a broad question so any help you can give is appreciated =) I'm basically looking for anything that has some explanation of the stuff I'm going to be looking at next year but most importantly some exercises and things I can be doing - it's really hard to apply a lot of the things I see without that concrete 'write a piece of code that does X' component.


I hate to sound like a douche, but being a computer scientist and a software engineer isn't all about programming. Programming is a secondary concern for computer scientists. It's phase two.

If you want to learn how to program, there are thousands of tutorials and programming guides online. If you're feeling like a pirate, you could even pirate some books. And they're all great for programming. In short, if you want to program, just program. Learning how to program is linear only for a short while. You're on your own from there.

If you want a TRUE CS education, you're going to have to broaden your horizons as to what computer science really is. You need to learn math, physics, electrical engineering, and computer science. (Look at MIT's degrees... why do you think their only degree program is EECS?)

Don't worry too much about programming. Programming is pretty easy. Focus on math. Math is at the center of being a computer scientist. Learn calculus 1,2,3, linear algebra and differential equations. Take discrete math as a learn linear algebra. Take a statistics class. (It's pointless learning algorithms if you don't know discrete math and statistics)

If you get good at solving difficult math problems, you will get good at solving difficult computer science problems. As I'm writing this I realize it's getting too long. There's too much to say about learning CS.

Just check out MIT's opencourseware. It's good.

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/



You definitely do sound like a douche. While programming isn't all of what a CS/SE student should focus on, it's not worth any effort to learn any of the things you mention. I don't think I've met a software engineer who has used any calculus, linear algebra, or differential equations in their life. I don't really call discrete math mathematics either, as opposed to simple mind numbing logic.

Algorithms is also important to software engineers, but honestly, once you recognize when to use what algorithms, it's pretty straightforward.

And unless you're doing embedded systems, you don't need physics or electrical engineering in any way.

Find me a software engineer who makes a living doing something other than programming... And basically all software architects were software engineers at some point... programming.

It's pretty friggen hard to find a job with a CS degree that doesn't involve programming. Maybe some sort of theoretical research at a university, but that's about it (excluding the aforementioned architects and possibly some network jobs).

All CS jobs involve programming, but those interesting ones involve also a lot of math/physics/.... . Just because most jobs are about programming trivial stuff, does not mean all of them are. I know plenty of people whose "programming jobs" would be impossible without high level math.

Also I want to know what kind of discrete math you were learning that you do not consider it math.
ZenithM
Profile Joined February 2011
France15952 Posts
February 15 2013 12:49 GMT
#4902
I think Abductedonut's comment was spot on, but it confuses software engineering with computer science. While the two are close, they don't require quite the same skillset/knowledge.
Ideally you want to be very good at programming (coding) and theoretical stuff, which few people actually are. I work in the field of academic computer science and people are generally pretty bad at programming there :D
And friends who work in a more corporate environment tell me that some of their co-workers are pretty oblivious to key elements of fundamental computer science background.
iaretehnoob
Profile Joined June 2004
Sweden741 Posts
February 15 2013 13:38 GMT
#4903
On February 15 2013 17:11 junseung wrote:
some exciting jobs

Define exciting jobs?
Rixxe
Profile Joined July 2011
United Kingdom136 Posts
February 15 2013 15:11 GMT
#4904
Does anyone have any experience with Oracle at all? Curious how different it is to SAS or SQL, and what plus sides it might have to it from people that deal with the 11g database on a daily basis.
Also as far as i can figure out, you can use PL\SQL to query the database, but does it have any other languages that can be used with it?

Generic Question:
Seems to be a lot less people learning 'data' languages, or working with databases these days from what i've read. Why do people think that is?
*bleep* you up in a gangsta style!
AmericanUmlaut
Profile Blog Joined November 2010
Germany2581 Posts
Last Edited: 2013-02-15 15:36:38
February 15 2013 15:33 GMT
#4905
On February 16 2013 00:11 Rixxe wrote:
Seems to be a lot less people learning 'data' languages, or working with databases these days from what i've read. Why do people think that is?

I'm not sure that's true. If it is true, it's probably because of the spread of abstraction layers like ORMs that make it so that you can interact with a database without writing SQL yourself, but you can't really write a serious application without dipping down past the abstraction layer. It's similar to how you can't program certain types of applications in C without occasionally dipping down and hand-writing assembly code. In both cases, you can technically get the result you need, but your ability to optimize will be severely limited.

Edit to add: The reason I don't think that fewer people are working with database languages is that a database is the core of most web programming, and web development is growing very rapidly as an industry. I'd expect that nearly everyone who works with any level of proficiency as a web developer is at least familiar with the fundamentals of SQL.
The frumious Bandersnatch
Kambing
Profile Joined May 2010
United States1176 Posts
February 15 2013 15:37 GMT
#4906
On February 16 2013 00:11 Rixxe wrote:
Generic Question:
Seems to be a lot less people learning 'data' languages, or working with databases these days from what i've read. Why do people think that is?


Databases are more important than ever, especially with the predominance of web services and applications. However, traditional relational DBs are not the "in" technology anymore (i.e., the NoSQL movement), so there's decidedly less open discussion about them. Such DBs don't rely on a DSL like SQL to do work in. Furthermore, data access has been integrated into general-purpose languages at various levels, e.g., LINQ, removing the need (somewhat) for a middle-man data language.
delHospital
Profile Blog Joined December 2010
Poland261 Posts
February 15 2013 15:48 GMT
#4907
On February 16 2013 00:11 Rixxe wrote:
Does anyone have any experience with Oracle at all? Curious how different it is to SAS or SQL, and what plus sides it might have to it from people that deal with the 11g database on a daily basis.
Also as far as i can figure out, you can use PL\SQL to query the database, but does it have any other languages that can be used with it?

Generic Question:
Seems to be a lot less people learning 'data' languages, or working with databases these days from what i've read. Why do people think that is?

You can't compare Oracle to SQL... Oracle is a database (a database management system, to be precise), while SQL is a query language. You use SQL to talk to Oracle. And PL/SQL is an extension of SQL that adds if's, while's, variables and stuff like that. It is used to write procedures that operate on data and are stored somewhere in the database.

If you've had experience with PostgreSQL, MySQL, MS SQL, IBM DB2 or something like that then, well, basically it's the same shit.
wherebugsgo
Profile Blog Joined February 2010
Japan10647 Posts
Last Edited: 2013-02-15 15:56:28
February 15 2013 15:50 GMT
#4908
On February 15 2013 13:17 aurum510 wrote:
Show nested quote +
On February 15 2013 12:56 Abductedonut wrote:
On February 15 2013 12:18 Cyx. wrote:
Hey guys, I'm currently taking a year off of university and I'm going back into second-year software engineering next year. I have a decent grasp of some of the basics of the programming I'm going to be learning next year (a university course in C++ last year and some hobby programming in Python in highschool and C++/Python in university) but I want to get a bit of a head start on some of the topics I'm going to be learning next year like pointers, sorting algorithms, basic Java programming... basically second-year CS courses.

Are there any good places on the internet to help me get the kind of head start I want? At this point I'm basically reduced to reading my roommate's textbooks (he's in the second year of the program right now) and working through his old lab exercises and stuff from the fall, which is actually pretty good practice except that I have a hard time just picking up his textbook and figuring out what I want to be looking at unless he's right there with me. Also, as someone who's planning on being a civil engineer, not a software engineer, he doesn't really understand a lot of the stuff on the level that I want to and even he and the textbook combined can't really give me everything I need.

I know it's a bit of a broad question so any help you can give is appreciated =) I'm basically looking for anything that has some explanation of the stuff I'm going to be looking at next year but most importantly some exercises and things I can be doing - it's really hard to apply a lot of the things I see without that concrete 'write a piece of code that does X' component.


I hate to sound like a douche, but being a computer scientist and a software engineer isn't all about programming. Programming is a secondary concern for computer scientists. It's phase two.

If you want to learn how to program, there are thousands of tutorials and programming guides online. If you're feeling like a pirate, you could even pirate some books. And they're all great for programming. In short, if you want to program, just program. Learning how to program is linear only for a short while. You're on your own from there.

If you want a TRUE CS education, you're going to have to broaden your horizons as to what computer science really is. You need to learn math, physics, electrical engineering, and computer science. (Look at MIT's degrees... why do you think their only degree program is EECS?)

Don't worry too much about programming. Programming is pretty easy. Focus on math. Math is at the center of being a computer scientist. Learn calculus 1,2,3, linear algebra and differential equations. Take discrete math as a learn linear algebra. Take a statistics class. (It's pointless learning algorithms if you don't know discrete math and statistics)

If you get good at solving difficult math problems, you will get good at solving difficult computer science problems. As I'm writing this I realize it's getting too long. There's too much to say about learning CS.

Just check out MIT's opencourseware. It's good.

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/



You definitely do sound like a douche. While programming isn't all of what a CS/SE student should focus on, it's not worth any effort to learn any of the things you mention. I don't think I've met a software engineer who has used any calculus, linear algebra, or differential equations in their life. I don't really call discrete math mathematics either, as opposed to simple mind numbing logic.

Algorithms is also important to software engineers, but honestly, once you recognize when to use what algorithms, it's pretty straightforward.

And unless you're doing embedded systems, you don't need physics or electrical engineering in any way.

Find me a software engineer who makes a living doing something other than programming... And basically all software architects were software engineers at some point... programming.

It's pretty friggen hard to find a job with a CS degree that doesn't involve programming. Maybe some sort of theoretical research at a university, but that's about it (excluding the aforementioned architects and possibly some network jobs).


he may have come off like a douche, but you come off pretty naive.

He didn't say that programming is not important, and your indication that "it isn't worth learning any of the things you mention" is completely wrong. The most sought-after applicants in EECS fields right out of university are generally those who have the strongest fundamental skills. This is particularly true for the better jobs. If you want to have any sort of impact beyond a simple coding job then everything outside of programming is very very important.

At most good schools you will learn programming no matter what if you do EECS. In general I would say that you would learn Python, and at least two of Java/C/C++ just by taking classes. I know I did-I have a strong grasp of Scheme, Python, Java, and C just by taking the core classes. You'd probably also have the opportunity/be required to learn HTML, Javascript, mobile app development, scripting, etc.

Once you take the core classes you don't need to learn how to program. You can pretty much pick up a language and learn it within a month or less. Language to language it's mostly syntax and minor other differences; learning to code in a different language after you've already learned the basics of good programming practices is simply about opening a reference text and hammering out the details. The core logic will all be there already.

As for what the guy was asking about in the first place, for second year EECS courses, usually only one or two of them are heavily coding-based.

For example discrete mathematics, circuit theory and digital signals theory are all 1st/2nd year courses and none of them have any programming at all. They're also core.

For third year courses such as algorithms, AI, and computer security, the programming is secondary or even tertiary to what you are actually learning. I'm taking an AI course right now and it's done in Python. From a programming perspective I'm not using anything that I didn't learn in my first two CS classes; all you truly need from a programming perspective is a background in object oriented programming and data structures. Everything else is all search algorithms, trees, optimization, probability, etc.

e: I may be considerably biased though, seeing as I am lucky to be a part of one of the best EECS programs in the country (or even the world) here at Berkeley.
aurum510
Profile Joined July 2010
United States229 Posts
February 15 2013 15:56 GMT
#4909
On February 15 2013 14:16 Kambing wrote:
Show nested quote +
On February 15 2013 13:17 aurum510 wrote:
I don't really call discrete math mathematics either, as opposed to simple mind numbing logic.


Discrete math and logic is mathematics. It's actually the "other" branch of mathematics that you don't explore until college (which is arguably backwards because logic benefits the everyday student much more than calculus). And in many ways, discrete math is the foundations on which all other math is built on. Consequently it plays a big role in computer science and its importance cannot be understated.

Show nested quote +
On February 15 2013 13:17 aurum510 wrote:
It's pretty friggen hard to find a job with a CS degree that doesn't involve programming. Maybe some sort of theoretical research at a university, but that's about it (excluding the aforementioned architects and possibly some network jobs).


Such jobs exist, e.g., technology-focused entrepreneurship, technology-focused law practice (esp. around software patents), software development product managers, UX designers, tech writers, or education.


Ok I agree with you, discrete math is math of course, but what I'm saying is that I could have definitely skipped it in college and not missed a single thing. The theory of computation was much more important in my mind, but still not very useful for the average computer science graduate.
wherebugsgo
Profile Blog Joined February 2010
Japan10647 Posts
February 15 2013 16:00 GMT
#4910
On February 16 2013 00:56 aurum510 wrote:
Show nested quote +
On February 15 2013 14:16 Kambing wrote:
On February 15 2013 13:17 aurum510 wrote:
I don't really call discrete math mathematics either, as opposed to simple mind numbing logic.


Discrete math and logic is mathematics. It's actually the "other" branch of mathematics that you don't explore until college (which is arguably backwards because logic benefits the everyday student much more than calculus). And in many ways, discrete math is the foundations on which all other math is built on. Consequently it plays a big role in computer science and its importance cannot be understated.

On February 15 2013 13:17 aurum510 wrote:
It's pretty friggen hard to find a job with a CS degree that doesn't involve programming. Maybe some sort of theoretical research at a university, but that's about it (excluding the aforementioned architects and possibly some network jobs).


Such jobs exist, e.g., technology-focused entrepreneurship, technology-focused law practice (esp. around software patents), software development product managers, UX designers, tech writers, or education.


Ok I agree with you, discrete math is math of course, but what I'm saying is that I could have definitely skipped it in college and not missed a single thing. The theory of computation was much more important in my mind, but still not very useful for the average computer science graduate.


so you're saying you never use boolean operators or logic gates?
delHospital
Profile Blog Joined December 2010
Poland261 Posts
February 15 2013 16:04 GMT
#4911
On February 16 2013 01:00 wherebugsgo wrote:
Show nested quote +
On February 16 2013 00:56 aurum510 wrote:
On February 15 2013 14:16 Kambing wrote:
On February 15 2013 13:17 aurum510 wrote:
I don't really call discrete math mathematics either, as opposed to simple mind numbing logic.


Discrete math and logic is mathematics. It's actually the "other" branch of mathematics that you don't explore until college (which is arguably backwards because logic benefits the everyday student much more than calculus). And in many ways, discrete math is the foundations on which all other math is built on. Consequently it plays a big role in computer science and its importance cannot be understated.

On February 15 2013 13:17 aurum510 wrote:
It's pretty friggen hard to find a job with a CS degree that doesn't involve programming. Maybe some sort of theoretical research at a university, but that's about it (excluding the aforementioned architects and possibly some network jobs).


Such jobs exist, e.g., technology-focused entrepreneurship, technology-focused law practice (esp. around software patents), software development product managers, UX designers, tech writers, or education.


Ok I agree with you, discrete math is math of course, but what I'm saying is that I could have definitely skipped it in college and not missed a single thing. The theory of computation was much more important in my mind, but still not very useful for the average computer science graduate.


so you're saying you never use boolean operators or logic gates?

Come on, you don't need to be proficient with Stirling numbers to use boolean operators...
aurum510
Profile Joined July 2010
United States229 Posts
Last Edited: 2013-02-15 16:25:43
February 15 2013 16:06 GMT
#4912
On February 16 2013 00:50 wherebugsgo wrote:
Show nested quote +
On February 15 2013 13:17 aurum510 wrote:
On February 15 2013 12:56 Abductedonut wrote:
On February 15 2013 12:18 Cyx. wrote:
Hey guys, I'm currently taking a year off of university and I'm going back into second-year software engineering next year. I have a decent grasp of some of the basics of the programming I'm going to be learning next year (a university course in C++ last year and some hobby programming in Python in highschool and C++/Python in university) but I want to get a bit of a head start on some of the topics I'm going to be learning next year like pointers, sorting algorithms, basic Java programming... basically second-year CS courses.

Are there any good places on the internet to help me get the kind of head start I want? At this point I'm basically reduced to reading my roommate's textbooks (he's in the second year of the program right now) and working through his old lab exercises and stuff from the fall, which is actually pretty good practice except that I have a hard time just picking up his textbook and figuring out what I want to be looking at unless he's right there with me. Also, as someone who's planning on being a civil engineer, not a software engineer, he doesn't really understand a lot of the stuff on the level that I want to and even he and the textbook combined can't really give me everything I need.

I know it's a bit of a broad question so any help you can give is appreciated =) I'm basically looking for anything that has some explanation of the stuff I'm going to be looking at next year but most importantly some exercises and things I can be doing - it's really hard to apply a lot of the things I see without that concrete 'write a piece of code that does X' component.


I hate to sound like a douche, but being a computer scientist and a software engineer isn't all about programming. Programming is a secondary concern for computer scientists. It's phase two.

If you want to learn how to program, there are thousands of tutorials and programming guides online. If you're feeling like a pirate, you could even pirate some books. And they're all great for programming. In short, if you want to program, just program. Learning how to program is linear only for a short while. You're on your own from there.

If you want a TRUE CS education, you're going to have to broaden your horizons as to what computer science really is. You need to learn math, physics, electrical engineering, and computer science. (Look at MIT's degrees... why do you think their only degree program is EECS?)

Don't worry too much about programming. Programming is pretty easy. Focus on math. Math is at the center of being a computer scientist. Learn calculus 1,2,3, linear algebra and differential equations. Take discrete math as a learn linear algebra. Take a statistics class. (It's pointless learning algorithms if you don't know discrete math and statistics)

If you get good at solving difficult math problems, you will get good at solving difficult computer science problems. As I'm writing this I realize it's getting too long. There's too much to say about learning CS.

Just check out MIT's opencourseware. It's good.

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/



You definitely do sound like a douche. While programming isn't all of what a CS/SE student should focus on, it's not worth any effort to learn any of the things you mention. I don't think I've met a software engineer who has used any calculus, linear algebra, or differential equations in their life. I don't really call discrete math mathematics either, as opposed to simple mind numbing logic.

Algorithms is also important to software engineers, but honestly, once you recognize when to use what algorithms, it's pretty straightforward.

And unless you're doing embedded systems, you don't need physics or electrical engineering in any way.

Find me a software engineer who makes a living doing something other than programming... And basically all software architects were software engineers at some point... programming.

It's pretty friggen hard to find a job with a CS degree that doesn't involve programming. Maybe some sort of theoretical research at a university, but that's about it (excluding the aforementioned architects and possibly some network jobs).


he may have come off like a douche, but you come off pretty naive.

He didn't say that programming is not important, and your indication that "it isn't worth learning any of the things you mention" is completely wrong. The most sought-after applicants in EECS fields right out of university are generally those who have the strongest fundamental skills. This is particularly true for the better jobs. If you want to have any sort of impact beyond a simple coding job then everything outside of programming is very very important.

At most good schools you will learn programming no matter what if you do EECS. In general I would say that you would learn Python, and at least two of Java/C/C++ just by taking classes. I know I did-I have a strong grasp of Scheme, Python, Java, and C just by taking the core classes. You'd probably also have the opportunity/be required to learn HTML, Javascript, mobile app development, scripting, etc.

Once you take the core classes you don't need to learn how to program. You can pretty much pick up a language and learn it within a month or less. Language to language it's mostly syntax and minor other differences; learning to code in a different language after you've already learned the basics of good programming practices is simply about opening a reference text and hammering out the details. The core logic will all be there already.

As for what the guy was asking about in the first place, for second year EECS courses, usually only one or two of them are heavily coding-based.

For example discrete mathematics, circuit theory and digital signals theory are all 1st/2nd year courses and none of them have any programming at all. They're also core.

For third year courses such as algorithms, AI, and computer security, the programming is secondary or even tertiary to what you are actually learning. I'm taking an AI course right now and it's done in Python. From a programming perspective I'm not using anything that I didn't learn in my first two CS classes; all you truly need from a programming perspective is a background in object oriented programming and data structures. Everything else is all search algorithms, trees, optimization, probability, etc.

e: I may be considerably biased though, seeing as I am lucky to be a part of one of the best EECS programs in the country (or even the world) here at Berkeley.


Oh please. I work as an embedded SE, and I can honestly say even I don't use any physics I learned in college. I don't use algorithms hardly at all (maybe a table of some sort now and then). I don't use discrete math. I don't use any sort of advanced mathematics beyond algebra. I don't use AI in any way (nor do much of anyone in the field). Security is about learning the algorithms and nothing else, which you can learn at any time in a few hours by opening a book.

You're still in your undergrad, so you are very biased. While it is important to understand those theory classes, they are useless in the end. The guy was asking about what he should study in his off year. I would never recommend opening a theory book and studying it, as it's not useful outside of understanding. There is almost no implementation of it unless you're writing a compiler or doing theoretical research. I got my masters at University of Chicago (also very good), and I can honestly say the only useful thing I learned in my masters was about parallel programming, some advanced operating systems and computer architecture, and that's about it.

P.S. It doesn't matter if you go to Berkley or a barely known state school, you learn the same thing. Schools are ranked by their research, not their academics now. Schools in Europe are always really low on the rankings, but that's only because the professors are there to teach, not to do research all the time (in fact, most of the schools prohibit professors from doing research while teaching, so they actually focus on teaching). I've had so many professors who have to teach one class a semester to stay employed to do their research and just give 1-3 exams and that's it. You leave those classes and know you've learned nothing. In fact, I'd much rather go to UC Davis than Berkley, as I would actually learn more. I got my undergrad at UW-Milwaukee (100th ranked in US, not very good), but I learned a lot more from the teachers there than I did at University of Chicago.
YiSunsin
Profile Joined August 2010
Slovakia60 Posts
February 15 2013 16:32 GMT
#4913
On February 16 2013 01:06 aurum510 wrote:
Show nested quote +
On February 16 2013 00:50 wherebugsgo wrote:
On February 15 2013 13:17 aurum510 wrote:
On February 15 2013 12:56 Abductedonut wrote:
On February 15 2013 12:18 Cyx. wrote:
Hey guys, I'm currently taking a year off of university and I'm going back into second-year software engineering next year. I have a decent grasp of some of the basics of the programming I'm going to be learning next year (a university course in C++ last year and some hobby programming in Python in highschool and C++/Python in university) but I want to get a bit of a head start on some of the topics I'm going to be learning next year like pointers, sorting algorithms, basic Java programming... basically second-year CS courses.

Are there any good places on the internet to help me get the kind of head start I want? At this point I'm basically reduced to reading my roommate's textbooks (he's in the second year of the program right now) and working through his old lab exercises and stuff from the fall, which is actually pretty good practice except that I have a hard time just picking up his textbook and figuring out what I want to be looking at unless he's right there with me. Also, as someone who's planning on being a civil engineer, not a software engineer, he doesn't really understand a lot of the stuff on the level that I want to and even he and the textbook combined can't really give me everything I need.

I know it's a bit of a broad question so any help you can give is appreciated =) I'm basically looking for anything that has some explanation of the stuff I'm going to be looking at next year but most importantly some exercises and things I can be doing - it's really hard to apply a lot of the things I see without that concrete 'write a piece of code that does X' component.


I hate to sound like a douche, but being a computer scientist and a software engineer isn't all about programming. Programming is a secondary concern for computer scientists. It's phase two.

If you want to learn how to program, there are thousands of tutorials and programming guides online. If you're feeling like a pirate, you could even pirate some books. And they're all great for programming. In short, if you want to program, just program. Learning how to program is linear only for a short while. You're on your own from there.

If you want a TRUE CS education, you're going to have to broaden your horizons as to what computer science really is. You need to learn math, physics, electrical engineering, and computer science. (Look at MIT's degrees... why do you think their only degree program is EECS?)

Don't worry too much about programming. Programming is pretty easy. Focus on math. Math is at the center of being a computer scientist. Learn calculus 1,2,3, linear algebra and differential equations. Take discrete math as a learn linear algebra. Take a statistics class. (It's pointless learning algorithms if you don't know discrete math and statistics)

If you get good at solving difficult math problems, you will get good at solving difficult computer science problems. As I'm writing this I realize it's getting too long. There's too much to say about learning CS.

Just check out MIT's opencourseware. It's good.

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/



You definitely do sound like a douche. While programming isn't all of what a CS/SE student should focus on, it's not worth any effort to learn any of the things you mention. I don't think I've met a software engineer who has used any calculus, linear algebra, or differential equations in their life. I don't really call discrete math mathematics either, as opposed to simple mind numbing logic.

Algorithms is also important to software engineers, but honestly, once you recognize when to use what algorithms, it's pretty straightforward.

And unless you're doing embedded systems, you don't need physics or electrical engineering in any way.

Find me a software engineer who makes a living doing something other than programming... And basically all software architects were software engineers at some point... programming.

It's pretty friggen hard to find a job with a CS degree that doesn't involve programming. Maybe some sort of theoretical research at a university, but that's about it (excluding the aforementioned architects and possibly some network jobs).


he may have come off like a douche, but you come off pretty naive.

He didn't say that programming is not important, and your indication that "it isn't worth learning any of the things you mention" is completely wrong. The most sought-after applicants in EECS fields right out of university are generally those who have the strongest fundamental skills. This is particularly true for the better jobs. If you want to have any sort of impact beyond a simple coding job then everything outside of programming is very very important.

At most good schools you will learn programming no matter what if you do EECS. In general I would say that you would learn Python, and at least two of Java/C/C++ just by taking classes. I know I did-I have a strong grasp of Scheme, Python, Java, and C just by taking the core classes. You'd probably also have the opportunity/be required to learn HTML, Javascript, mobile app development, scripting, etc.

Once you take the core classes you don't need to learn how to program. You can pretty much pick up a language and learn it within a month or less. Language to language it's mostly syntax and minor other differences; learning to code in a different language after you've already learned the basics of good programming practices is simply about opening a reference text and hammering out the details. The core logic will all be there already.

As for what the guy was asking about in the first place, for second year EECS courses, usually only one or two of them are heavily coding-based.

For example discrete mathematics, circuit theory and digital signals theory are all 1st/2nd year courses and none of them have any programming at all. They're also core.

For third year courses such as algorithms, AI, and computer security, the programming is secondary or even tertiary to what you are actually learning. I'm taking an AI course right now and it's done in Python. From a programming perspective I'm not using anything that I didn't learn in my first two CS classes; all you truly need from a programming perspective is a background in object oriented programming and data structures. Everything else is all search algorithms, trees, optimization, probability, etc.

e: I may be considerably biased though, seeing as I am lucky to be a part of one of the best EECS programs in the country (or even the world) here at Berkeley.


Oh please. I work as an embedded SE, and I can honestly say even I don't use any physics I learned in college. I don't use algorithms hardly at all (maybe a table of some sort now and then). I don't use discrete math. I don't use any sort of advanced mathematics beyond algebra. I don't use AI in any way (nor do much of anyone in the field). Security is about learning the algorithms and nothing else, which you can learn at any time in a few hours by opening a book.

You're still in your undergrad, so you are very biased. While it is important to understand those theory classes, they are useless in the end. The guy was asking about what he should study in his off year. I would never recommend opening a theory book and studying it, as it's not useful outside of understanding. There is almost no implementation of it unless you're writing a compiler or doing theoretical research. I got my masters at University of Chicago (also very good), and I can honestly say the only useful thing I learned in my masters was about parallel programming, some advanced operating systems and computer architecture, and that's about it.


I basically had the same problem While at school, I was told to study hard discrete math, algorithms, data structures .. even algorithmics for NP problems, advanced computability theory etc. I truly believed that I could learn how to program in short period, but knowledge that I was getting would last and benefit me (I would land better/more qualified jobs - yeah). I may call it The blindness of theoretical CS.

What I know now is complete opposite - you can learn math and algos quickly (any research paper is comprehensible after all, if you stare long enough), but learning programming might take you 5 years AT LEAST. Fundamental problem is this - knowing programming language /= being good programmer. So yes, you can learn new 10 languages per year (or even more quickly), yet you may suck at programming so hard ... That`s basically my problem - I can do fancy stuff with math, I know syntax of programming languages, I know how to use it, yet creating efficient, bug-free, ellegant and maintainable code is an art, which I don`t master yet.

Btw. if you see spirited and talented CS grad that believes discrete math will make him substantially better - just don`t crush his dreams, because he is doing what he believes in, and that`s what matters. He will eventually find out
"BO for girls: @8 movie, @10 dinner , around 12 I lean in for the kiss and if that messes up, I try to get back with a little bit of harassment." Day[9]
aurum510
Profile Joined July 2010
United States229 Posts
February 15 2013 16:46 GMT
#4914
On February 16 2013 01:32 YiSunsin wrote:
Show nested quote +
On February 16 2013 01:06 aurum510 wrote:
On February 16 2013 00:50 wherebugsgo wrote:
On February 15 2013 13:17 aurum510 wrote:
On February 15 2013 12:56 Abductedonut wrote:
On February 15 2013 12:18 Cyx. wrote:
Hey guys, I'm currently taking a year off of university and I'm going back into second-year software engineering next year. I have a decent grasp of some of the basics of the programming I'm going to be learning next year (a university course in C++ last year and some hobby programming in Python in highschool and C++/Python in university) but I want to get a bit of a head start on some of the topics I'm going to be learning next year like pointers, sorting algorithms, basic Java programming... basically second-year CS courses.

Are there any good places on the internet to help me get the kind of head start I want? At this point I'm basically reduced to reading my roommate's textbooks (he's in the second year of the program right now) and working through his old lab exercises and stuff from the fall, which is actually pretty good practice except that I have a hard time just picking up his textbook and figuring out what I want to be looking at unless he's right there with me. Also, as someone who's planning on being a civil engineer, not a software engineer, he doesn't really understand a lot of the stuff on the level that I want to and even he and the textbook combined can't really give me everything I need.

I know it's a bit of a broad question so any help you can give is appreciated =) I'm basically looking for anything that has some explanation of the stuff I'm going to be looking at next year but most importantly some exercises and things I can be doing - it's really hard to apply a lot of the things I see without that concrete 'write a piece of code that does X' component.


I hate to sound like a douche, but being a computer scientist and a software engineer isn't all about programming. Programming is a secondary concern for computer scientists. It's phase two.

If you want to learn how to program, there are thousands of tutorials and programming guides online. If you're feeling like a pirate, you could even pirate some books. And they're all great for programming. In short, if you want to program, just program. Learning how to program is linear only for a short while. You're on your own from there.

If you want a TRUE CS education, you're going to have to broaden your horizons as to what computer science really is. You need to learn math, physics, electrical engineering, and computer science. (Look at MIT's degrees... why do you think their only degree program is EECS?)

Don't worry too much about programming. Programming is pretty easy. Focus on math. Math is at the center of being a computer scientist. Learn calculus 1,2,3, linear algebra and differential equations. Take discrete math as a learn linear algebra. Take a statistics class. (It's pointless learning algorithms if you don't know discrete math and statistics)

If you get good at solving difficult math problems, you will get good at solving difficult computer science problems. As I'm writing this I realize it's getting too long. There's too much to say about learning CS.

Just check out MIT's opencourseware. It's good.

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/



You definitely do sound like a douche. While programming isn't all of what a CS/SE student should focus on, it's not worth any effort to learn any of the things you mention. I don't think I've met a software engineer who has used any calculus, linear algebra, or differential equations in their life. I don't really call discrete math mathematics either, as opposed to simple mind numbing logic.

Algorithms is also important to software engineers, but honestly, once you recognize when to use what algorithms, it's pretty straightforward.

And unless you're doing embedded systems, you don't need physics or electrical engineering in any way.

Find me a software engineer who makes a living doing something other than programming... And basically all software architects were software engineers at some point... programming.

It's pretty friggen hard to find a job with a CS degree that doesn't involve programming. Maybe some sort of theoretical research at a university, but that's about it (excluding the aforementioned architects and possibly some network jobs).


he may have come off like a douche, but you come off pretty naive.

He didn't say that programming is not important, and your indication that "it isn't worth learning any of the things you mention" is completely wrong. The most sought-after applicants in EECS fields right out of university are generally those who have the strongest fundamental skills. This is particularly true for the better jobs. If you want to have any sort of impact beyond a simple coding job then everything outside of programming is very very important.

At most good schools you will learn programming no matter what if you do EECS. In general I would say that you would learn Python, and at least two of Java/C/C++ just by taking classes. I know I did-I have a strong grasp of Scheme, Python, Java, and C just by taking the core classes. You'd probably also have the opportunity/be required to learn HTML, Javascript, mobile app development, scripting, etc.

Once you take the core classes you don't need to learn how to program. You can pretty much pick up a language and learn it within a month or less. Language to language it's mostly syntax and minor other differences; learning to code in a different language after you've already learned the basics of good programming practices is simply about opening a reference text and hammering out the details. The core logic will all be there already.

As for what the guy was asking about in the first place, for second year EECS courses, usually only one or two of them are heavily coding-based.

For example discrete mathematics, circuit theory and digital signals theory are all 1st/2nd year courses and none of them have any programming at all. They're also core.

For third year courses such as algorithms, AI, and computer security, the programming is secondary or even tertiary to what you are actually learning. I'm taking an AI course right now and it's done in Python. From a programming perspective I'm not using anything that I didn't learn in my first two CS classes; all you truly need from a programming perspective is a background in object oriented programming and data structures. Everything else is all search algorithms, trees, optimization, probability, etc.

e: I may be considerably biased though, seeing as I am lucky to be a part of one of the best EECS programs in the country (or even the world) here at Berkeley.


Oh please. I work as an embedded SE, and I can honestly say even I don't use any physics I learned in college. I don't use algorithms hardly at all (maybe a table of some sort now and then). I don't use discrete math. I don't use any sort of advanced mathematics beyond algebra. I don't use AI in any way (nor do much of anyone in the field). Security is about learning the algorithms and nothing else, which you can learn at any time in a few hours by opening a book.

You're still in your undergrad, so you are very biased. While it is important to understand those theory classes, they are useless in the end. The guy was asking about what he should study in his off year. I would never recommend opening a theory book and studying it, as it's not useful outside of understanding. There is almost no implementation of it unless you're writing a compiler or doing theoretical research. I got my masters at University of Chicago (also very good), and I can honestly say the only useful thing I learned in my masters was about parallel programming, some advanced operating systems and computer architecture, and that's about it.


I basically had the same problem While at school, I was told to study hard discrete math, algorithms, data structures .. even algorithmics for NP problems, advanced computability theory etc. I truly believed that I could learn how to program in short period, but knowledge that I was getting would last and benefit me (I would land better/more qualified jobs - yeah). I may call it The blindness of theoretical CS.

What I know now is complete opposite - you can learn math and algos quickly (any research paper is comprehensible after all, if you stare long enough), but learning programming might take you 5 years AT LEAST. Fundamental problem is this - knowing programming language /= being good programmer. So yes, you can learn new 10 languages per year (or even more quickly), yet you may suck at programming so hard ... That`s basically my problem - I can do fancy stuff with math, I know syntax of programming languages, I know how to use it, yet creating efficient, bug-free, ellegant and maintainable code is an art, which I don`t master yet.

Btw. if you see spirited and talented CS grad that believes discrete math will make him substantially better - just don`t crush his dreams, because he is doing what he believes in, and that`s what matters. He will eventually find out


All of this rings true. Programming is an art one masters throughout his/her life.
YiSunsin
Profile Joined August 2010
Slovakia60 Posts
February 15 2013 16:49 GMT
#4915
On February 16 2013 00:50 wherebugsgo wrote:
He didn't say that programming is not important, and your indication that "it isn't worth learning any of the things you mention" is completely wrong. The most sought-after applicants in EECS fields right out of university are generally those who have the strongest fundamental skills. This is particularly true for the better jobs. If you want to have any sort of impact beyond a simple coding job then everything outside of programming is very very important.

That would be soooo nice if only it was true.

"BO for girls: @8 movie, @10 dinner , around 12 I lean in for the kiss and if that messes up, I try to get back with a little bit of harassment." Day[9]
mcc
Profile Joined October 2010
Czech Republic4646 Posts
February 15 2013 17:14 GMT
#4916
On February 16 2013 01:32 YiSunsin wrote:
Show nested quote +
On February 16 2013 01:06 aurum510 wrote:
On February 16 2013 00:50 wherebugsgo wrote:
On February 15 2013 13:17 aurum510 wrote:
On February 15 2013 12:56 Abductedonut wrote:
On February 15 2013 12:18 Cyx. wrote:
Hey guys, I'm currently taking a year off of university and I'm going back into second-year software engineering next year. I have a decent grasp of some of the basics of the programming I'm going to be learning next year (a university course in C++ last year and some hobby programming in Python in highschool and C++/Python in university) but I want to get a bit of a head start on some of the topics I'm going to be learning next year like pointers, sorting algorithms, basic Java programming... basically second-year CS courses.

Are there any good places on the internet to help me get the kind of head start I want? At this point I'm basically reduced to reading my roommate's textbooks (he's in the second year of the program right now) and working through his old lab exercises and stuff from the fall, which is actually pretty good practice except that I have a hard time just picking up his textbook and figuring out what I want to be looking at unless he's right there with me. Also, as someone who's planning on being a civil engineer, not a software engineer, he doesn't really understand a lot of the stuff on the level that I want to and even he and the textbook combined can't really give me everything I need.

I know it's a bit of a broad question so any help you can give is appreciated =) I'm basically looking for anything that has some explanation of the stuff I'm going to be looking at next year but most importantly some exercises and things I can be doing - it's really hard to apply a lot of the things I see without that concrete 'write a piece of code that does X' component.


I hate to sound like a douche, but being a computer scientist and a software engineer isn't all about programming. Programming is a secondary concern for computer scientists. It's phase two.

If you want to learn how to program, there are thousands of tutorials and programming guides online. If you're feeling like a pirate, you could even pirate some books. And they're all great for programming. In short, if you want to program, just program. Learning how to program is linear only for a short while. You're on your own from there.

If you want a TRUE CS education, you're going to have to broaden your horizons as to what computer science really is. You need to learn math, physics, electrical engineering, and computer science. (Look at MIT's degrees... why do you think their only degree program is EECS?)

Don't worry too much about programming. Programming is pretty easy. Focus on math. Math is at the center of being a computer scientist. Learn calculus 1,2,3, linear algebra and differential equations. Take discrete math as a learn linear algebra. Take a statistics class. (It's pointless learning algorithms if you don't know discrete math and statistics)

If you get good at solving difficult math problems, you will get good at solving difficult computer science problems. As I'm writing this I realize it's getting too long. There's too much to say about learning CS.

Just check out MIT's opencourseware. It's good.

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/



You definitely do sound like a douche. While programming isn't all of what a CS/SE student should focus on, it's not worth any effort to learn any of the things you mention. I don't think I've met a software engineer who has used any calculus, linear algebra, or differential equations in their life. I don't really call discrete math mathematics either, as opposed to simple mind numbing logic.

Algorithms is also important to software engineers, but honestly, once you recognize when to use what algorithms, it's pretty straightforward.

And unless you're doing embedded systems, you don't need physics or electrical engineering in any way.

Find me a software engineer who makes a living doing something other than programming... And basically all software architects were software engineers at some point... programming.

It's pretty friggen hard to find a job with a CS degree that doesn't involve programming. Maybe some sort of theoretical research at a university, but that's about it (excluding the aforementioned architects and possibly some network jobs).


he may have come off like a douche, but you come off pretty naive.

He didn't say that programming is not important, and your indication that "it isn't worth learning any of the things you mention" is completely wrong. The most sought-after applicants in EECS fields right out of university are generally those who have the strongest fundamental skills. This is particularly true for the better jobs. If you want to have any sort of impact beyond a simple coding job then everything outside of programming is very very important.

At most good schools you will learn programming no matter what if you do EECS. In general I would say that you would learn Python, and at least two of Java/C/C++ just by taking classes. I know I did-I have a strong grasp of Scheme, Python, Java, and C just by taking the core classes. You'd probably also have the opportunity/be required to learn HTML, Javascript, mobile app development, scripting, etc.

Once you take the core classes you don't need to learn how to program. You can pretty much pick up a language and learn it within a month or less. Language to language it's mostly syntax and minor other differences; learning to code in a different language after you've already learned the basics of good programming practices is simply about opening a reference text and hammering out the details. The core logic will all be there already.

As for what the guy was asking about in the first place, for second year EECS courses, usually only one or two of them are heavily coding-based.

For example discrete mathematics, circuit theory and digital signals theory are all 1st/2nd year courses and none of them have any programming at all. They're also core.

For third year courses such as algorithms, AI, and computer security, the programming is secondary or even tertiary to what you are actually learning. I'm taking an AI course right now and it's done in Python. From a programming perspective I'm not using anything that I didn't learn in my first two CS classes; all you truly need from a programming perspective is a background in object oriented programming and data structures. Everything else is all search algorithms, trees, optimization, probability, etc.

e: I may be considerably biased though, seeing as I am lucky to be a part of one of the best EECS programs in the country (or even the world) here at Berkeley.


Oh please. I work as an embedded SE, and I can honestly say even I don't use any physics I learned in college. I don't use algorithms hardly at all (maybe a table of some sort now and then). I don't use discrete math. I don't use any sort of advanced mathematics beyond algebra. I don't use AI in any way (nor do much of anyone in the field). Security is about learning the algorithms and nothing else, which you can learn at any time in a few hours by opening a book.

You're still in your undergrad, so you are very biased. While it is important to understand those theory classes, they are useless in the end. The guy was asking about what he should study in his off year. I would never recommend opening a theory book and studying it, as it's not useful outside of understanding. There is almost no implementation of it unless you're writing a compiler or doing theoretical research. I got my masters at University of Chicago (also very good), and I can honestly say the only useful thing I learned in my masters was about parallel programming, some advanced operating systems and computer architecture, and that's about it.


I basically had the same problem While at school, I was told to study hard discrete math, algorithms, data structures .. even algorithmics for NP problems, advanced computability theory etc. I truly believed that I could learn how to program in short period, but knowledge that I was getting would last and benefit me (I would land better/more qualified jobs - yeah). I may call it The blindness of theoretical CS.

What I know now is complete opposite - you can learn math and algos quickly (any research paper is comprehensible after all, if you stare long enough), but learning programming might take you 5 years AT LEAST. Fundamental problem is this - knowing programming language /= being good programmer. So yes, you can learn new 10 languages per year (or even more quickly), yet you may suck at programming so hard ... That`s basically my problem - I can do fancy stuff with math, I know syntax of programming languages, I know how to use it, yet creating efficient, bug-free, ellegant and maintainable code is an art, which I don`t master yet.

Btw. if you see spirited and talented CS grad that believes discrete math will make him substantially better - just don`t crush his dreams, because he is doing what he believes in, and that`s what matters. He will eventually find out

Or maybe, just maybe, both are true ? Most people objected to him saying that those topics are of no use for a programmer. Yes, for 90% of programmers they are of little to no use. But there are many non-academic jobs that require you to know both. You need practice to become a good programmer, but that is something school won't teach you anyway. What they can teach you is how to think about abstract issues and some topics of computer science.

Person who learned discrete math, complexity and computability and all those other "useless" topics WILL be (statistically) better than the one who did not. Both will require extensive programming practice to become good programmers, most of it out of school, but the first will also have learned how to properly think about problems. And if he is lucky he might get one of those jobs where you are not a coding monkey from the get go.
aurum510
Profile Joined July 2010
United States229 Posts
February 15 2013 17:27 GMT
#4917
On February 16 2013 02:14 mcc wrote:
Show nested quote +
On February 16 2013 01:32 YiSunsin wrote:
On February 16 2013 01:06 aurum510 wrote:
On February 16 2013 00:50 wherebugsgo wrote:
On February 15 2013 13:17 aurum510 wrote:
On February 15 2013 12:56 Abductedonut wrote:
On February 15 2013 12:18 Cyx. wrote:
Hey guys, I'm currently taking a year off of university and I'm going back into second-year software engineering next year. I have a decent grasp of some of the basics of the programming I'm going to be learning next year (a university course in C++ last year and some hobby programming in Python in highschool and C++/Python in university) but I want to get a bit of a head start on some of the topics I'm going to be learning next year like pointers, sorting algorithms, basic Java programming... basically second-year CS courses.

Are there any good places on the internet to help me get the kind of head start I want? At this point I'm basically reduced to reading my roommate's textbooks (he's in the second year of the program right now) and working through his old lab exercises and stuff from the fall, which is actually pretty good practice except that I have a hard time just picking up his textbook and figuring out what I want to be looking at unless he's right there with me. Also, as someone who's planning on being a civil engineer, not a software engineer, he doesn't really understand a lot of the stuff on the level that I want to and even he and the textbook combined can't really give me everything I need.

I know it's a bit of a broad question so any help you can give is appreciated =) I'm basically looking for anything that has some explanation of the stuff I'm going to be looking at next year but most importantly some exercises and things I can be doing - it's really hard to apply a lot of the things I see without that concrete 'write a piece of code that does X' component.


I hate to sound like a douche, but being a computer scientist and a software engineer isn't all about programming. Programming is a secondary concern for computer scientists. It's phase two.

If you want to learn how to program, there are thousands of tutorials and programming guides online. If you're feeling like a pirate, you could even pirate some books. And they're all great for programming. In short, if you want to program, just program. Learning how to program is linear only for a short while. You're on your own from there.

If you want a TRUE CS education, you're going to have to broaden your horizons as to what computer science really is. You need to learn math, physics, electrical engineering, and computer science. (Look at MIT's degrees... why do you think their only degree program is EECS?)

Don't worry too much about programming. Programming is pretty easy. Focus on math. Math is at the center of being a computer scientist. Learn calculus 1,2,3, linear algebra and differential equations. Take discrete math as a learn linear algebra. Take a statistics class. (It's pointless learning algorithms if you don't know discrete math and statistics)

If you get good at solving difficult math problems, you will get good at solving difficult computer science problems. As I'm writing this I realize it's getting too long. There's too much to say about learning CS.

Just check out MIT's opencourseware. It's good.

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/



You definitely do sound like a douche. While programming isn't all of what a CS/SE student should focus on, it's not worth any effort to learn any of the things you mention. I don't think I've met a software engineer who has used any calculus, linear algebra, or differential equations in their life. I don't really call discrete math mathematics either, as opposed to simple mind numbing logic.

Algorithms is also important to software engineers, but honestly, once you recognize when to use what algorithms, it's pretty straightforward.

And unless you're doing embedded systems, you don't need physics or electrical engineering in any way.

Find me a software engineer who makes a living doing something other than programming... And basically all software architects were software engineers at some point... programming.

It's pretty friggen hard to find a job with a CS degree that doesn't involve programming. Maybe some sort of theoretical research at a university, but that's about it (excluding the aforementioned architects and possibly some network jobs).


he may have come off like a douche, but you come off pretty naive.

He didn't say that programming is not important, and your indication that "it isn't worth learning any of the things you mention" is completely wrong. The most sought-after applicants in EECS fields right out of university are generally those who have the strongest fundamental skills. This is particularly true for the better jobs. If you want to have any sort of impact beyond a simple coding job then everything outside of programming is very very important.

At most good schools you will learn programming no matter what if you do EECS. In general I would say that you would learn Python, and at least two of Java/C/C++ just by taking classes. I know I did-I have a strong grasp of Scheme, Python, Java, and C just by taking the core classes. You'd probably also have the opportunity/be required to learn HTML, Javascript, mobile app development, scripting, etc.

Once you take the core classes you don't need to learn how to program. You can pretty much pick up a language and learn it within a month or less. Language to language it's mostly syntax and minor other differences; learning to code in a different language after you've already learned the basics of good programming practices is simply about opening a reference text and hammering out the details. The core logic will all be there already.

As for what the guy was asking about in the first place, for second year EECS courses, usually only one or two of them are heavily coding-based.

For example discrete mathematics, circuit theory and digital signals theory are all 1st/2nd year courses and none of them have any programming at all. They're also core.

For third year courses such as algorithms, AI, and computer security, the programming is secondary or even tertiary to what you are actually learning. I'm taking an AI course right now and it's done in Python. From a programming perspective I'm not using anything that I didn't learn in my first two CS classes; all you truly need from a programming perspective is a background in object oriented programming and data structures. Everything else is all search algorithms, trees, optimization, probability, etc.

e: I may be considerably biased though, seeing as I am lucky to be a part of one of the best EECS programs in the country (or even the world) here at Berkeley.


Oh please. I work as an embedded SE, and I can honestly say even I don't use any physics I learned in college. I don't use algorithms hardly at all (maybe a table of some sort now and then). I don't use discrete math. I don't use any sort of advanced mathematics beyond algebra. I don't use AI in any way (nor do much of anyone in the field). Security is about learning the algorithms and nothing else, which you can learn at any time in a few hours by opening a book.

You're still in your undergrad, so you are very biased. While it is important to understand those theory classes, they are useless in the end. The guy was asking about what he should study in his off year. I would never recommend opening a theory book and studying it, as it's not useful outside of understanding. There is almost no implementation of it unless you're writing a compiler or doing theoretical research. I got my masters at University of Chicago (also very good), and I can honestly say the only useful thing I learned in my masters was about parallel programming, some advanced operating systems and computer architecture, and that's about it.


I basically had the same problem While at school, I was told to study hard discrete math, algorithms, data structures .. even algorithmics for NP problems, advanced computability theory etc. I truly believed that I could learn how to program in short period, but knowledge that I was getting would last and benefit me (I would land better/more qualified jobs - yeah). I may call it The blindness of theoretical CS.

What I know now is complete opposite - you can learn math and algos quickly (any research paper is comprehensible after all, if you stare long enough), but learning programming might take you 5 years AT LEAST. Fundamental problem is this - knowing programming language /= being good programmer. So yes, you can learn new 10 languages per year (or even more quickly), yet you may suck at programming so hard ... That`s basically my problem - I can do fancy stuff with math, I know syntax of programming languages, I know how to use it, yet creating efficient, bug-free, ellegant and maintainable code is an art, which I don`t master yet.

Btw. if you see spirited and talented CS grad that believes discrete math will make him substantially better - just don`t crush his dreams, because he is doing what he believes in, and that`s what matters. He will eventually find out

Or maybe, just maybe, both are true ? Most people objected to him saying that those topics are of no use for a programmer. Yes, for 90% of programmers they are of little to no use. But there are many non-academic jobs that require you to know both. You need practice to become a good programmer, but that is something school won't teach you anyway. What they can teach you is how to think about abstract issues and some topics of computer science.

Person who learned discrete math, complexity and computability and all those other "useless" topics WILL be (statistically) better than the one who did not. Both will require extensive programming practice to become good programmers, most of it out of school, but the first will also have learned how to properly think about problems. And if he is lucky he might get one of those jobs where you are not a coding monkey from the get go.


This is true as well, many jobs do require more than just "coding". But as I was responding to someone who told a person taking a year off of school to study theory and not coding, I believe my response was accurate. I don't think telling a second year university student to look at theory is a good idea. I think even anyone with some experience can tell you that. Trying to keep up on your studies while taking a year off by reading theory books is a really really bad idea.

I do believe there are many extremely important advanced courses in computer science that do involve some theory, but they also involve implementing those theoretical ideas.
peacenl
Profile Blog Joined November 2009
550 Posts
Last Edited: 2013-02-15 17:31:11
February 15 2013 17:28 GMT
#4918
Hey guys,

Do any of you know what the way is to change variables in between Perl script instances? I want to get rid of this changing of variables throughout multiple instances (runs of the same Perl script). Because I seem to have created the following byproduct which I'm unable to get rid of:

Perl1.pl

my $var;

sub test {
for (0..1000) {
print $var . "\n";
sleep 1;
}
}

// Some piece of script here sets $var randomly - uses DBI to fetch database value
test();


So the first time I run Perl1.pl:
$var is set to "Test 1";
It outputs:
Test 1
Test 1
Test 1
etc...


I run the same script again while the first is still running (this one sets $var to "Test 2") and this happens with the first script instance:
Test 1
Test 1
--- runs second script instance ---
Test 2
Test 2
Test 2
etc..


PS. I don't use a package scope.
- One does not simply walk into a bar and start calling the shots.
- Failure doesn't mean you are a failure it just means you haven't succeeded yet.
mcc
Profile Joined October 2010
Czech Republic4646 Posts
February 15 2013 17:41 GMT
#4919
On February 16 2013 02:27 aurum510 wrote:
Show nested quote +
On February 16 2013 02:14 mcc wrote:
On February 16 2013 01:32 YiSunsin wrote:
On February 16 2013 01:06 aurum510 wrote:
On February 16 2013 00:50 wherebugsgo wrote:
On February 15 2013 13:17 aurum510 wrote:
On February 15 2013 12:56 Abductedonut wrote:
On February 15 2013 12:18 Cyx. wrote:
Hey guys, I'm currently taking a year off of university and I'm going back into second-year software engineering next year. I have a decent grasp of some of the basics of the programming I'm going to be learning next year (a university course in C++ last year and some hobby programming in Python in highschool and C++/Python in university) but I want to get a bit of a head start on some of the topics I'm going to be learning next year like pointers, sorting algorithms, basic Java programming... basically second-year CS courses.

Are there any good places on the internet to help me get the kind of head start I want? At this point I'm basically reduced to reading my roommate's textbooks (he's in the second year of the program right now) and working through his old lab exercises and stuff from the fall, which is actually pretty good practice except that I have a hard time just picking up his textbook and figuring out what I want to be looking at unless he's right there with me. Also, as someone who's planning on being a civil engineer, not a software engineer, he doesn't really understand a lot of the stuff on the level that I want to and even he and the textbook combined can't really give me everything I need.

I know it's a bit of a broad question so any help you can give is appreciated =) I'm basically looking for anything that has some explanation of the stuff I'm going to be looking at next year but most importantly some exercises and things I can be doing - it's really hard to apply a lot of the things I see without that concrete 'write a piece of code that does X' component.


I hate to sound like a douche, but being a computer scientist and a software engineer isn't all about programming. Programming is a secondary concern for computer scientists. It's phase two.

If you want to learn how to program, there are thousands of tutorials and programming guides online. If you're feeling like a pirate, you could even pirate some books. And they're all great for programming. In short, if you want to program, just program. Learning how to program is linear only for a short while. You're on your own from there.

If you want a TRUE CS education, you're going to have to broaden your horizons as to what computer science really is. You need to learn math, physics, electrical engineering, and computer science. (Look at MIT's degrees... why do you think their only degree program is EECS?)

Don't worry too much about programming. Programming is pretty easy. Focus on math. Math is at the center of being a computer scientist. Learn calculus 1,2,3, linear algebra and differential equations. Take discrete math as a learn linear algebra. Take a statistics class. (It's pointless learning algorithms if you don't know discrete math and statistics)

If you get good at solving difficult math problems, you will get good at solving difficult computer science problems. As I'm writing this I realize it's getting too long. There's too much to say about learning CS.

Just check out MIT's opencourseware. It's good.

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/



You definitely do sound like a douche. While programming isn't all of what a CS/SE student should focus on, it's not worth any effort to learn any of the things you mention. I don't think I've met a software engineer who has used any calculus, linear algebra, or differential equations in their life. I don't really call discrete math mathematics either, as opposed to simple mind numbing logic.

Algorithms is also important to software engineers, but honestly, once you recognize when to use what algorithms, it's pretty straightforward.

And unless you're doing embedded systems, you don't need physics or electrical engineering in any way.

Find me a software engineer who makes a living doing something other than programming... And basically all software architects were software engineers at some point... programming.

It's pretty friggen hard to find a job with a CS degree that doesn't involve programming. Maybe some sort of theoretical research at a university, but that's about it (excluding the aforementioned architects and possibly some network jobs).


he may have come off like a douche, but you come off pretty naive.

He didn't say that programming is not important, and your indication that "it isn't worth learning any of the things you mention" is completely wrong. The most sought-after applicants in EECS fields right out of university are generally those who have the strongest fundamental skills. This is particularly true for the better jobs. If you want to have any sort of impact beyond a simple coding job then everything outside of programming is very very important.

At most good schools you will learn programming no matter what if you do EECS. In general I would say that you would learn Python, and at least two of Java/C/C++ just by taking classes. I know I did-I have a strong grasp of Scheme, Python, Java, and C just by taking the core classes. You'd probably also have the opportunity/be required to learn HTML, Javascript, mobile app development, scripting, etc.

Once you take the core classes you don't need to learn how to program. You can pretty much pick up a language and learn it within a month or less. Language to language it's mostly syntax and minor other differences; learning to code in a different language after you've already learned the basics of good programming practices is simply about opening a reference text and hammering out the details. The core logic will all be there already.

As for what the guy was asking about in the first place, for second year EECS courses, usually only one or two of them are heavily coding-based.

For example discrete mathematics, circuit theory and digital signals theory are all 1st/2nd year courses and none of them have any programming at all. They're also core.

For third year courses such as algorithms, AI, and computer security, the programming is secondary or even tertiary to what you are actually learning. I'm taking an AI course right now and it's done in Python. From a programming perspective I'm not using anything that I didn't learn in my first two CS classes; all you truly need from a programming perspective is a background in object oriented programming and data structures. Everything else is all search algorithms, trees, optimization, probability, etc.

e: I may be considerably biased though, seeing as I am lucky to be a part of one of the best EECS programs in the country (or even the world) here at Berkeley.


Oh please. I work as an embedded SE, and I can honestly say even I don't use any physics I learned in college. I don't use algorithms hardly at all (maybe a table of some sort now and then). I don't use discrete math. I don't use any sort of advanced mathematics beyond algebra. I don't use AI in any way (nor do much of anyone in the field). Security is about learning the algorithms and nothing else, which you can learn at any time in a few hours by opening a book.

You're still in your undergrad, so you are very biased. While it is important to understand those theory classes, they are useless in the end. The guy was asking about what he should study in his off year. I would never recommend opening a theory book and studying it, as it's not useful outside of understanding. There is almost no implementation of it unless you're writing a compiler or doing theoretical research. I got my masters at University of Chicago (also very good), and I can honestly say the only useful thing I learned in my masters was about parallel programming, some advanced operating systems and computer architecture, and that's about it.


I basically had the same problem While at school, I was told to study hard discrete math, algorithms, data structures .. even algorithmics for NP problems, advanced computability theory etc. I truly believed that I could learn how to program in short period, but knowledge that I was getting would last and benefit me (I would land better/more qualified jobs - yeah). I may call it The blindness of theoretical CS.

What I know now is complete opposite - you can learn math and algos quickly (any research paper is comprehensible after all, if you stare long enough), but learning programming might take you 5 years AT LEAST. Fundamental problem is this - knowing programming language /= being good programmer. So yes, you can learn new 10 languages per year (or even more quickly), yet you may suck at programming so hard ... That`s basically my problem - I can do fancy stuff with math, I know syntax of programming languages, I know how to use it, yet creating efficient, bug-free, ellegant and maintainable code is an art, which I don`t master yet.

Btw. if you see spirited and talented CS grad that believes discrete math will make him substantially better - just don`t crush his dreams, because he is doing what he believes in, and that`s what matters. He will eventually find out

Or maybe, just maybe, both are true ? Most people objected to him saying that those topics are of no use for a programmer. Yes, for 90% of programmers they are of little to no use. But there are many non-academic jobs that require you to know both. You need practice to become a good programmer, but that is something school won't teach you anyway. What they can teach you is how to think about abstract issues and some topics of computer science.

Person who learned discrete math, complexity and computability and all those other "useless" topics WILL be (statistically) better than the one who did not. Both will require extensive programming practice to become good programmers, most of it out of school, but the first will also have learned how to properly think about problems. And if he is lucky he might get one of those jobs where you are not a coding monkey from the get go.


This is true as well, many jobs do require more than just "coding". But as I was responding to someone who told a person taking a year off of school to study theory and not coding, I believe my response was accurate. I don't think telling a second year university student to look at theory is a good idea. I think even anyone with some experience can tell you that. Trying to keep up on your studies while taking a year off by reading theory books is a really really bad idea.

I do believe there are many extremely important advanced courses in computer science that do involve some theory, but they also involve implementing those theoretical ideas.

Well I disagree with you as he will not learn how to be a good programmer by doing pet projects (he might but that would be a rare occurance). Team projects and "real-life" projects are the lessons that teach you how to be a good programmer in the sense that you talk about. It is very unlikely he will have opportunity to do so. Much better to spend the time on learning non-programming things that interest him and do programming only as far as necessary to realize those things. For example, interested in neural networks, learn about them and program some. And so on.
Shield
Profile Blog Joined August 2009
Bulgaria4824 Posts
Last Edited: 2013-02-15 19:33:48
February 15 2013 19:00 GMT
#4920
Guys I need your help. I currently have this code:


int main(void) {
/* input variables */
float a, b;
int n;
/* division = a/b */
long double division;
int answer;

/* get input */
scanf("%f %f %d", &a, &b, &n);

// calculate a/b
division = (long double)a / (long double)b;
answer = (int)(division * pow(10, n)) % 10;

printf("%Lf\n", division);

/* output */
printf("%d\n", answer);
/* successful execution */
return 0;
}



But it doesn't work properly when I write: 8 60000 5

In other words, 8/60000 returns this:
-bash-4.1$ ./a.out
8 60000 5
0.000133 <--- incorrect result of 8/60000
3


The goal of the program is to find the n-th digit after the decimal point, but the real problem right now is it doesn't calculate precisely.

How do I achieve 'very high' precision? It's what my assignment's requirement says.
Prev 1 244 245 246 247 248 1032 Next
Please log in or register to reply.
Live Events Refresh
Next event in 3h 9m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
mouzHeroMarine 606
IndyStarCraft 175
Railgan 82
StarCraft: Brood War
Britney 14433
Calm 2613
Shuttle 549
Larva 233
firebathero 124
Dota 2
420jenkins404
capcasts79
Counter-Strike
fl0m5405
kRYSTAL_29
Heroes of the Storm
Liquid`Hasu405
Khaldor148
Other Games
Grubby3907
RotterdaM161
Sick112
C9.Mang0102
Trikslyr85
ArmadaUGS85
QueenE66
Mew2King50
ViBE24
XaKoH 12
Organizations
Other Games
Algost 11
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 19 non-featured ]
StarCraft 2
• Reevou 11
• Dystopia_ 1
• IndyKCrew
• sooper7s
• AfreecaTV YouTube
• Migwel
• intothetv
• LaughNgamezSOOP
• Kozan
StarCraft: Brood War
• FirePhoenix15
• 80smullet 14
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• WagamamaTV663
• lizZardDota267
League of Legends
• TFBlade957
Other Games
• imaqtpie1493
• Shiphtur243
Upcoming Events
Replay Cast
3h 9m
Korean StarCraft League
1d 6h
CranKy Ducklings
1d 13h
WardiTV 2025
1d 15h
SC Evo League
1d 15h
BSL 21
1d 23h
Sziky vs OyAji
Gypsy vs eOnzErG
OSC
2 days
Solar vs Creator
ByuN vs Gerald
Percival vs Babymarine
Moja vs Krystianer
EnDerr vs ForJumy
sebesdes vs Nicoract
Sparkling Tuna Cup
2 days
WardiTV 2025
2 days
OSC
2 days
[ Show More ]
BSL 21
2 days
Bonyth vs StRyKeR
Tarson vs Dandy
Replay Cast
3 days
Wardi Open
3 days
StarCraft2.fi
3 days
Monday Night Weeklies
3 days
Replay Cast
4 days
WardiTV 2025
4 days
StarCraft2.fi
4 days
PiGosaur Monday
5 days
StarCraft2.fi
5 days
Tenacious Turtle Tussle
6 days
The PondCast
6 days
WardiTV 2025
6 days
StarCraft2.fi
6 days
Liquipedia Results

Completed

Proleague 2025-11-30
RSL Revival: Season 3
Light HT

Ongoing

C-Race Season 1
IPSL Winter 2025-26
KCM Race Survival 2025 Season 4
YSL S2
BSL Season 21
CSCL: Masked Kings S3
Slon Tour Season 2
Acropolis #4 - TS3
META Madness #9
SL Budapest Major 2025
ESL Impact League Season 8
BLAST Rivals Fall 2025
IEM Chengdu 2025
PGL Masters Bucharest 2025
Thunderpick World Champ.
CS Asia Championships 2025
ESL Pro League S22
StarSeries Fall 2025
FISSURE Playground #2

Upcoming

BSL 21 Non-Korean Championship
Acropolis #4
IPSL Spring 2026
Bellum Gens Elite Stara Zagora 2026
HSC XXVIII
RSL Offline Finals
WardiTV 2025
Kuram Kup
PGL Cluj-Napoca 2026
IEM Kraków 2026
BLAST Bounty Winter 2026
BLAST Bounty Winter Qual
eXTREMESLAND 2025
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2025 TLnet. All Rights Reserved.