• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Programming |OT| C is better than C++! No, C++ is better than C

Well, it wasn't a joke, and that's really annoying. I take suggestions.

There's good online courses and ressources, there's books I like for other "targets" (I enjoyed Dive into Python, but that's definitively not for anyone), but I'm at a loss when someone wants me to suggest a book for beginners.

It's just that a bunch of bad books don't become a bunch of good books just because you can't find good ones...



Since Python is now an nationwide official language for high-school studies, there's many new books appearing, but they're often not that good.

I mean...

Chapter on stacks

"We will implement stacks using lists

Pop is done by L.pop(0)
Push is done by L.insert(0, elem)" (sic)

Way to go... Let's have a push/pop that's O(n)!

Sometimes, you wonder where editors find their writers...

I've seen people give up and learn a different language because they spent too much time worrying about what the "optimal" book is instead of just getting a damn book and opening it. I mean, I don't think it really matters. Go to amazon, type "python programming", sort by relevance, and choose one of the top 3. They'll all be "good enough", the important thing is that you just do it instead of finding excuses to postpone the learning.
 

Koren

Member
I've seen people give up and learn a different language because they spent too much time worrying about what the "optimal" book is instead of just getting a damn book and opening it. I mean, I don't think it really matters.
I think that do. I've hated Python at first, and ut was because of the book. I've done nearly a 180° later because of another.

It probably doesn't matter much, but my students aren't especially interested in CS and those looking for books are those that need really clear ones.

...I don't think I've ever seen a stack implemented that way. It's probably still O(1) if they've got a pointer to the first element, but then that's not even a stack is it? No stack should ever have the option to specify where you're popping or pushing. Is there not a built-in stack class in Python?
There's no need: lists ARE stacks. Lists have a pop() and a push (although it's named append(elem)). Of course, you doesn't forbid operations not allowed on stacks, but Python philosophy is to never forbid anything.

Insert(0, elem) is O(n) in Python. Well, any implementation I know, and I doubt it would change, there's deque for O(1) for inserting at head.

My point is:
- it's a way to do this that noone will ever do, and it'll differ with what they'll see in exams
- it's more complicated AND far less efficient than the normal way

I could live with lack of efficiency if it's more easy, but one of the objectives of the course is to train them to O(*) with lists, so as soon as you look at it, it doesn't make sense.

That's a stack. I don't really see this as a super big problem though. It quickly teaches what a stack is in theory, and that's cool as an introduction.
Except it's a prep school, so they'll access different high schools depending on their understanding of stacks and O(*)

The exams will use the normal way...

Granted, CS is a minor, but for best schools, everyone is good at maths and physics, minors are often the key to in or out...

It is pretty baffling though, since a 5 second google search (or just using the default option of pop()) shows that using pop() on the last element together with append is a much better choice. Much simpler too. The fact that the author apparently couldn't even do that is pretty worrying.
Yes, that's my problem. Where have they found the author? It shows a lack of understanding/knowledge of the language I fing worrying, when the topic has dire consequences for the readers...
 

Makai

Member
lol, today was a fun day in /r/rust. There was a chain of blog posts about marketing Rust and all that stuff

First there was Rust is more than safety, which got a bunch of responses, such as:

Rust is mostly safety
Safety is Rust's Fire Flower
(both of which lead to the author of the original piece to respond with Fire Mario, not Fire Flowers)
Rust in 2017
Rust is its community
Rust is Software's Salvation (this one is a little hyperbolic, as you can see...)
Rust is... an elephant
Fire Flowers and Marios: Marketing Rust (which is a response to the response to the responses of the original article)

which finally culminated in...
Rust is literally Haskel, and the subreddit changing it's CSS to that of the Haskel subreddit.

And now I'm laughing my ass of this whole thing :D
The articles are pretty good as well, worth a read.

EDIT: Two more:
Why Rust?
Rust is about productivity
https://www.youtube.com/watch?v=ToBqbpm3LDM
 
I think that do. I've hated Python at first, and ut was because of the book. I've done nearly a 180° later because of another.

It probably doesn't matter much, but my students aren't especially interested in CS and those looking for books are those that need really clear ones.

It's mostly subjective though. There are people that swear by Learn Python the Hard Way. There are those that hate it. The same is true for Larry Wall's Perl book. The same is true for any book. We've devolved into this culture where everything is either pass or fail, a book is either the best one in the world or complete shit that you should avoid like the plague. As a result, people spend so much effort trying to find "the best book" that they're exhausted before they even begin the process of learning.

If you go to Amazon and a book has 5* with hundreds of reviews, that's a pretty good indication that it's a good book. Again, opinions are subjective by definition, but if you don't like a book that everyone else likes, then you are, by definition, in the minority.

It takes 30 seconds to go to Amazon and search for "python programming" and choose a book that is highly rated with many reviews and appears to be targeted at beginners. Anyone making this more complicated is just setting themselves up for failure. Statistically speaking, you are more likely to have success that way than by asking 1 person either on a forum or in person.

Enough people give up before they even begin that I've adopted the stance that picking a book and sticking with it is more important than finding the best book. Like seriously, just do it. If you can't just do it, you probably aren't cut out to be in software engineering anyway, because that is the exact mentality you need to be successful. And personality / mindset is not something you're going to learn from a book.

If you're a teacher or an educator, then sure spending some time to choose an appropriate text is important, because many books are designed for self study, and anyway that time spent doing the research is done by the teacher and helps many students. But for the guy looking for a recommendation for self study, seriously just go to amazon, pick a book, and read it.
 

Kinokou

Member
Thanks everyone who chimed in on my frustrations, I'm still feeling a bit drained on the issue but all your feedback was good, especially the recommended web resources sound solid and more in line with a way of learning that can be counted on to motivate me more. Now I just have to do some choices.
 

Koren

Member
It's mostly subjective though. There are people that swear by Learn Python the Hard Way. There are those that hate it. The same is true for Larry Wall's Perl book. The same is true for any book.
Definitively...

We've devolved into this culture where everything is either pass or fail, a book is either the best one in the world or complete shit that you should avoid like the plague. As a result, people spend so much effort trying to find "the best book" that they're exhausted before they even begin the process of learning.

If you go to Amazon and a book has 5* with hundreds of reviews, that's a pretty good indication that it's a good book.
I agree... But I can't see myself suggesting a book I don't like, and I've yet to find one I like aimed at non-coders.

It's trickier when a student ask for advice, though. It must fit what's expected from them, esoecially since they don't have much time to spare, be quite easy to understand, an devoid of mistakes. When people read a book not because they're interested in the topic but because they have to, bro enjoyable to read is a huge plus, too...
 
lol, today was a fun day in /r/rust. There was a chain of blog posts about marketing Rust and all that stuff

First there was Rust is more than safety, which got a bunch of responses, such as:

Rust is mostly safety
Safety is Rust's Fire Flower
(both of which lead to the author of the original piece to respond with Fire Mario, not Fire Flowers)
Rust in 2017
Rust is its community
Rust is Software's Salvation (this one is a little hyperbolic, as you can see...)
Rust is... an elephant
Fire Flowers and Marios: Marketing Rust (which is a response to the response to the responses of the original article)

which finally culminated in...
Rust is literally Haskel, and the subreddit changing it's CSS to that of the Haskel subreddit.

And now I'm laughing my ass of this whole thing :D
The articles are pretty good as well, worth a read.

EDIT: Two more:
Why Rust?
Rust is about productivity

The Rust community is pretty fantastic. I've contributed small pull requests to a couple of Rust projects and everyone's been super friendly and will help you along if you're new. They've been doing a great job with being inclusive and welcoming to newcomers.
 

Bollocks

Member
ok c# heads I need some explanation:
Code:
using (var db = new BloggingContext())
{
    var blogs = db.Blogs
        .Where(b => b.Rating > 3)
        .OrderBy(b => b.Url)
        .ToList();
}

what is the purpose of creating the db variable like that? scoping?
couldn't I just declare it normally like any other variable why do I have to wrap it into a using statement?

Also is Entity Framework the goto solution when you need a database backend? I thought I would have to write my own queries until I discovered EF and it looks pretty awesome but I don't know whether this is just an idea or suited for real life applications.
 

Makai

Member
ok c# heads I need some explanation:
Code:
using (var db = new BloggingContext())
{
    var blogs = db.Blogs
        .Where(b => b.Rating > 3)
        .OrderBy(b => b.Url)
        .ToList();
}

what is the purpose of creating the db variable like that? scoping?
couldn't I just declare it normally like any other variable why do I have to wrap it into a using statement?

Also is Entity Framework the goto solution when you need a database backend? I thought I would have to write my own queries until I discovered EF and it looks pretty awesome but I don't know whether this is just an idea or suited for real life applications.
It calls db.Dispose(). BloggingContext has something that needs to be cleaned up after it goes out of scope.
 

Kalnos

Banned
Also is Entity Framework the goto solution when you need a database backend? I thought I would have to write my own queries until I discovered EF and it looks pretty awesome but I don't know whether this is just an idea or suited for real life applications.

It works fine in my experience but the larger and more complicated the queries get then the more painful EF gets to use. You can run raw SQL queries with it though so no big deal if you need a feature that EF doesn't expose.
 

Zoe

Member
I didn't like EntityFramework the one time I used it. I should give it another try, but I prefer having complete control over how things go in and out of the database.
 

Kalnos

Banned
I didn't like EntityFramework the one time I used it. I should give it another try, but I prefer having complete control over how things go in and out of the database.

Right, basically the con of using any ORM. If your queries are simple then it saves you a ton of trouble, otherwise it can be a pain in the ass.
 

Cromat

Member
Hey guys, how viable is it to start working with Python on Windows? So far it's been kinda difficult to install packages and to build executables.
 

Zoe

Member
Right, basically the con of using any ORM. If your queries are simple then it saves you a ton of trouble, otherwise it can be a pain in the ass.
It also seems more suited towards teams where there isn't a division between maintaining app code and the database. That shouldn't be a problem for me because I'm a one-man team, but I still like to code as if I could hand off the DB to someone else one day.
 

Pokemaniac

Member
Hey guys, how viable is it to start working with Python on Windows? So far it's been kinda difficult to install packages and to build executables.

While Python probably thrives a bit better in a more Unix-like environment, there's nothing I'm aware of that would really be a blocker for using it on Windows. The caveat, of course, is that I've never actually tried that myself.

Package installation will probably happen through pip, which I believe is included by default on Windows.

As for building executables, typically that's not something you really do in Python. There are tools for doing that if you need to, but those are mostly to solve problems with distribution and aren't actually necessary to use if you can make assumptions about the end users having Python installed. Python scripts are usually run from source* with the main Python executable (in your case, probably python.exe) as the interpreter.

*
Technically, this isn't true, but that is a detail you should just let the runtime handle.
 

Thezez

Banned
So I have an interview related question for iOS developers...

I was previously doing a little bit of iOS/macOS development work in a primarily IT role, then decided to go and get a CS degree because I enjoyed programming so much. I'm now nearing the end of my degree and I'm starting to think about work.

What is the interview process like for an iOS developer? I'm freaking out a bit reading the 'Cracking the Coding Interview' book and frantically searching through my notes on BSTs and Hash Tables.

I've worked on my own little projects here and there for a sort of portfolio, and I'm aiming to get the iOS app I worked on for an Individual Programming Project paper on the app store shortly, but I'm really not sure what else I can do to stand out. Internships aren't really a thing where I'm from, but I'm going to be moving to the US once I'm done with school where I understand it is common to get internships in your first or second year.

Any help appreciated!
 

Makai

Member
So I have an interview related question for iOS developers...

I was previously doing a little bit of iOS/macOS development work in a primarily IT role, then decided to go and get a CS degree because I enjoyed programming so much. I'm now nearing the end of my degree and I'm starting to think about work.

What is the interview process like for an iOS developer? I'm freaking out a bit reading the 'Cracking the Coding Interview' book and frantically searching through my notes on BSTs and Hash Tables.

I've worked on my own little projects here and there for a sort of portfolio, and I'm aiming to get the iOS app I worked on for an Individual Programming Project paper on the app store shortly, but I'm really not sure what else I can do to stand out. Internships aren't really a thing where I'm from, but I'm going to be moving to the US once I'm done with school where I understand it is common to get internships in your first or second year.
what's the difference between a protocol and an abstract class
 

JeTmAn81

Member
Well, since stack is an abstract data type, the implementation technically doesn't matter. As long as you define pop and push, you've got a stack. So if you say:
Code:
pop(l):
    l.pop(0)
push(l, e):
    l.insert(0, e)
That's a stack. I don't really see this as a super big problem though. It quickly teaches what a stack is in theory, and that's cool as an introduction. It is pretty baffling though, since a 5 second google search (or just using the default option of pop()) shows that using pop() on the last element together with append is a much better choice. Much simpler too. The fact that the author apparently couldn't even do that is pretty worrying.

If you're teaching people to actually push onto a stack by writing an insert command with a specified index, then that's not a stack. A stack by its definition has constraints. If those constraints don't exist, it's just a list that you're using like a stack.
 

Eridani

Member
If you're teaching people to actually push onto a stack by writing an insert command with a specified index, then that's not a stack. A stack by its definition has constraints. If those constraints don't exist, it's just a list that you're using like a stack.
But the definition I gave has constraints. You have a push function and a pop function, and nothing else. Sure, you can do other things with the list outside of the definition of a stack, but that's always the case.

Even with the most low level implementation of a stack you can get (using a stack pointer on a block of memory) you still have what's essentially an array in the background, and you can directly access that. Even in Java, Stack extends Vector which extends AbstractList.
 

JesseZao

Member
But the definition I gave has constraints. You have a push function and a pop function, and nothing else. Sure, you can do other things with the list outside of the definition of a stack, but that's always the case.

Even with the most low level implementation of a stack you can get (using a stack pointer on a block of memory) you still have what's essentially an array in the background, and you can directly access that. Even in Java, Stack extends Vector which extends AbstractList.

I think he means there needs to be a layer of abstraction hiding the implementation e.g. to prevent an end user from calling insert(i, foo) directly on the collection.
 

Eridani

Member
I think he means there needs to be a layer of abstraction hiding the implementation e.g. to prevent an end user from calling insert(i, foo) directly on the collection.
I mean, there can be. And from a practical viewpoint it can be nice when there is, but it's not necessary, and it's also not always possible (when working in assembly for example).
 
Hey guys, how viable is it to start working with Python on Windows? So far it's been kinda difficult to install packages and to build executables.

What's difficult about it? It works just like Python on Unix. packages are installed the same way, through pip. Executables are not built (but they aren't on linux / mac either), scripts are run directly.

Do you have an example of something that is easy to do on linux but you can't get to work on windows?
 

Chris R

Member
I didn't like EntityFramework the one time I used it. I should give it another try, but I prefer having complete control over how things go in and out of the database.

In the times I've used EF it's been terrific like 90% of the time.

The other 10% it's been a PITA and more work to fix issues than it was worth.
 

Cromat

Member
What's difficult about it? It works just like Python on Unix. packages are installed the same way, through pip. Executables are not built (but they aren't on linux / mac either), scripts are run directly.

Do you have an example of something that is easy to do on linux but you can't get to work on windows?

pip didn't really work for me - I had to get the win32 binaries straight from this website.

I didn't realize that Python programs are generally not compiled, I assumed this way only for testing where speed doesn't matter much.

Thanks!
 

Eridani

Member
What's difficult about it? It works just like Python on Unix. packages are installed the same way, through pip. Executables are not built (but they aren't on linux / mac either), scripts are run directly.

Do you have an example of something that is easy to do on linux but you can't get to work on windows?

pip didn't really work for me - I had to get the win32 binaries straight from this website.

I didn't realize that Python programs are generally not compiled, I assumed this way only for testing where speed doesn't matter much.

Thanks!


There are packages that are harder to install on Windows, such as SciPy, which claims:
pip does not work well for Windows because the standard pip package index site, PyPI, does not yet have Windows wheels for some packages, such as SciPy.
Which means you basically have to download pre-built binaries yourself.

For SciPy (and some other great packages) the easiest way to solve this is to install Anaconda, which comes with a lot of packages already installed. I'd recommend it to anyone using Python on Windows, since packages like NumPy are just so great to have and are a bit of a pain to install manually.
 

phoenixyz

Member
Pure python modules are installed easy peasy via pip, that's true. But every module which has native code needs to be compiled which is a pain in the ass on windows. You can get a whole lot of the more popular ones in binary form here. Just download and install the file via pip/wheel.
 

Mr.Mike

Member
How would that help? You would still need windows binaries, no?

The Windows Subsystem for Linux runs actual Linux binaries. So you would use all the same package management business you would normally use on Linux and it would work just the same on Ubuntu bash.
 

Pokemaniac

Member
How would that help? You would still need windows binaries, no?

Nope, that's a full Windows subsystem. It actually runs Linux binaries. Windows is actually pretty modular, and can implement alternate OS APIs as subsystems. My understanding is that this was originally insurance in case Win32 didn't take off.

I'm not sure I'd recommend really using it for anything at this point, though. It's still pretty buggy (last I checked, Java wouldn't run at all unless you forced it to use the interpreter) and you'd be stuck with an old version of Ubuntu.
 

phoenixyz

Member
The Windows Subsystem for Linux runs actual Linux binaries. So you would just use all the same package management business you would normally use on Linux and it would work just the same on Ubuntu bash.

Okay. Wow.

But you would need to compile nevertheless. But if it's as easy in this "subsystem" as it is in actual Linux that is a good alternative. At least if you are running Win 10.
 
Okay. Wow.

But you would need to compile nevertheless. But if it's as easy in this "subsystem" as it is in actual Linux that is a good alternative. At least if you are running Win 10.

You would need to compile, but it wouldn't be any different than compiling in Linux. Because it literally is linux.

Don't think of it as a subsystem of windows. Think of it as linux.
 

VertPin

Member
Sup GAF,

I've had an interest in programming for quite some time now (over a year, probably). However, I didn't know where to start. My 2017 new years resolution was to learn a new skill, or find a hobby I enjoy.

So, I picked up Python. I'm using Code Academy, which is pretty decent so far...but seems to have a lot of browser issues on FireFox? I had to switch to Chrome. Some simple code would not go through on Firefox, yet the same code would go through on Chrome.

I'm learning "functions", and it's definitely thrown a curve ball at me. Any helpful resources? Should I stay away from Code Academy and use something else? Sometimes I feel as if their instructions aren't clear enough, such as their example's or hints hardly having to do with a particular subject.
 
Sup GAF,

I've had an interest in programming for quite some time now (over a year, probably). However, I didn't know where to start. My 2017 new years resolution was to learn a new skill, or find a hobby I enjoy.

So, I picked up Python. I'm using Code Academy, which is pretty decent so far...but seems to have a lot of browser issues on FireFox? I had to switch to Chrome. Some simple code would not go through on Firefox, yet the same code would go through on Chrome.

I'm learning "functions", and it's definitely thrown a curve ball at me. Any helpful resources? Should I stay away from Code Academy and use something else? Sometimes I feel as if their instructions aren't clear enough, such as their example's or hints hardly having to do with a particular subject.

https://learnpythonthehardway.org/book/
 

Jokab

Member
Sup GAF,

I've had an interest in programming for quite some time now (over a year, probably). However, I didn't know where to start. My 2017 new years resolution was to learn a new skill, or find a hobby I enjoy.

So, I picked up Python. I'm using Code Academy, which is pretty decent so far...but seems to have a lot of browser issues on FireFox? I had to switch to Chrome. Some simple code would not go through on Firefox, yet the same code would go through on Chrome.

I'm learning "functions", and it's definitely thrown a curve ball at me. Any helpful resources? Should I stay away from Code Academy and use something else? Sometimes I feel as if their instructions aren't clear enough, such as their example's or hints hardly having to do with a particular subject.

If you want to only learn Python then go with Learn Python The Hard Way as suggested above. But if you want to learn programming for reals I would strongly suggest CS50 at Harvard. It teaches you the fundamentals of programming using a few different languages and assumes no previous knowledge. All online too. It's awesome.
 

Koren

Member
I think he means there needs to be a layer of abstraction hiding the implementation e.g. to prevent an end user from calling insert(i, foo) directly on the collection.
As long as you promise not using anything else than 0, I don't think it matters that much... Granted, when you say "you can't do XXX", and students reply "but I can", there's some explanations needed, but using a layer of abstraction isn't really better: you suggest you need such a layer, and in practice you won't use it.

Beside, preventing anything is quite un-pythonic anyway.

What's difficult about it? It works just like Python on Unix. packages are installed the same way, through pip. Executables are not built (but they aren't on linux / mac either), scripts are run directly.
Executabvkes are not built, but many packages are. It's so awful on a Windows (or OS-X) you don't administrate that I've used Linux on a USB key before just because of this.

For SciPy (and some other great packages) the easiest way to solve this is to install Anaconda, which comes with a lot of packages already installed. I'd recommend it to anyone using Python on Windows, since packages like NumPy are just so great to have and are a bit of a pain to install manually.
Miniconda (suggested by Pyzo) works great too.

Python(x,y) is also a nice package for Windows, but it's Python, not Python 3k (well, it'll go well with LPTHW ;) )

If you want to only learn Python then go with Learn Python The Hard Way as suggested above.
Argh... You see why I need to find a good book? To have something else to say that "absolutely anything but that" ;)
 
Sup GAF,

I've had an interest in programming for quite some time now (over a year, probably). However, I didn't know where to start. My 2017 new years resolution was to learn a new skill, or find a hobby I enjoy.

So, I picked up Python. I'm using Code Academy, which is pretty decent so far...but seems to have a lot of browser issues on FireFox? I had to switch to Chrome. Some simple code would not go through on Firefox, yet the same code would go through on Chrome.

I'm learning "functions", and it's definitely thrown a curve ball at me. Any helpful resources? Should I stay away from Code Academy and use something else? Sometimes I feel as if their instructions aren't clear enough, such as their example's or hints hardly having to do with a particular subject.

I recommend the udacity course, Intro to Computer Science. hopefully that link works, its free btw. That is, imo, the best intro course for programming, and I have tried quite a few of them (online and books).

I decided I wanted to learn to program about this time last year. I've come a LONG way in the past year. Sometimes it is very frustrating though :(
 

Makai

Member
Trick question for Objective C? Or more generic language answer?
Whoops - I tought Swift had abstract classes. Oh well - you see confusing curveballs in interviews. I've seen a variant of that in every interview ever - what's the difference between an interface and an abstract class. It's an easy weedout.
 

nOoblet16

Member
So I applied as a junior rendering programmer in a game company and they told me they'll send me a code for a simple 2D game written in C++ that I'll have to modify and send within 24hrs, it's more to test my problem solving skills than game making as that's something that they more or less expect me to pick up while working for them rather than know beforehand.

I am assuming after this is done they'll call me for an interview where I'll have to write some 1-2 short code to solve some problems they present. Any idea on what I should practice or do to prepare? This will be my first job ever if I get it.
 

Slo

Member
So I applied as a junior rendering programmer in a game company and they told me they'll send me a code for a simple 2D game written in C++ that I'll have to modify and send within 24hrs, it's more to test my problem solving skills than game making as that's something that they more or less expect me to pick up while working for them rather than know beforehand.

I am assuming after this is done they'll call me for an interview where I'll have to write some 1-2 short code to solve some problems they present. Any idea on what I should practice or do to prepare? This will be my first job ever if I get it.

The prototypical simple programming question is how to reverse a string or a list without calling some method like .reverse(). So its usually just basic stuff.
 

nOoblet16

Member
The prototypical simple programming question is how to reverse a string or a list without calling some method like .reverse(). So its usually just basic stuff.
Meh I know atleast 2 different methods to do those without calling library functions...Pointers work well. Any other examples of questions? Some people asked me to practice graphs and linear algebra.
 

pompidu

Member
Figured this might be the best place to post this, if not send me away.

I'm about 2.5 years away from being vested in my 401k and pension at my current job. I mostly use etl tools and Oracle SQL here , and I'm looking to move away from that stuff.

So I'm asking for some guidance on what the job market is for different programming languages. I have 2.5 years to refresh myself on different languages but I figure I should concentrate on one language or a core of them and develop some portfolio.

So what are the new techniques/technologies I should focus on? There a way to guage the local market job pool without shifting through all the job openings? Should I call a tech recruit to get an idea? Job openings don't normally post salaries, there a good reputable source for that?

Thanks in advance!
 
Figured this might be the best place to post this, if not send me away.

I'm about 2.5 years away from being vested in my 401k and pension at my current job. I mostly use etl tools and Oracle SQL here , and I'm looking to move away from that stuff.

So I'm asking for some guidance on what the job market is for different programming languages. I have 2.5 years to refresh myself on different languages but I figure I should concentrate on one language or a core of them and develop some portfolio.

So what are the new techniques/technologies I should focus on? There a way to guage the local market job pool without shifting through all the job openings? Should I call a tech recruit to get an idea? Job openings don't normally post salaries, there a good reputable source for that?

Thanks in advance!

Take your local city (or desired city of choice), go to Dice.com, search on the city and the technology of choice. That will give you an idea of what's in demand where you want to work, which will help you if you want to pragmatically approach a job search.

For example, here in Charlotte, the current listings are the following (for a smattering of languages, certainly not all):
Code:
C# 	101
Java	229
C++	28
Visual Basic	97
Python	45
Ruby	10
Swift	10

So if I didn't have a particular language preference and wanted to put myself in the best position to land a good job, I would concentrate on Java, C#, and VB (can't do it) and less on Python or C++. Of course, the more tools you have in your tool belt, the better, but since none of us have unlimited free time, if you need to prioritize, do it smartly.
 
Top Bottom