• Ever wanted an RSS feed of all your favorite gaming news sites? Go check out our new Gaming Headlines feed! Read more about it here.
  • We have made minor adjustments to how the search bar works on ResetEra. You can read about the changes here.

firehawk12

Member
Oct 25, 2017
24,263
Hey guys. I'm wondering, which is the best online resource to learn Python in an structured environment? I already have a fair share of coding experience.
The class I'm in is using Practical Programmer's Python book (which is available as an ebook). But I'm also at the school where the two co-authors teach, so maybe a small grain of salt there.
 

Tenck

Member
Oct 27, 2017
614
Any recommendations on C++ material I can go over? Just trying to mess with the language and have no specific goal with it right now. Maybe once I get a good grasp on it I'll have a clear objective.

I'm pretty much a coding newbie if that makes any difference when it comes to recommending something.
 

thesoapster

Member
Oct 25, 2017
6,918
MD, USA
Any recommendations on C++ material I can go over? Just trying to mess with the language and have no specific goal with it right now. Maybe once I get a good grasp on it I'll have a clear objective.

I'm pretty much a coding newbie if that makes any difference when it comes to recommending something.

http://www.learncpp.com looks decent to me.

I will say after a couple semesters with Java, C++ felt like a little bit "much," but I did eventually get the basics down. It also helps to have clear definition, and less verbal wandering off into the void (like some teachers were prone to do). I probably would have benefitted more by using a site like the one I linked lol.
 

Tyranlord

Member
Oct 28, 2017
68
Hey all, have been a lurker in the past and want to interact a lot more on ResetEra haha. Nice to meet you all!
 

Zevenberge

Member
Oct 27, 2017
570
Hey all. I'm creative by heart and developer by trade, so I thought I'd say hi. C#/Java pay for the bills, but D is my favourite programming language. What is D? It's awesome. It markets itself as a high level system language, but I use it as a higher level C#. The main thing I like about it, is consistency. Things with the same meaning are treated the same. E.g. "new MyClass" and "new MyStruct" both allocate and return a pointer. Metaprogramming in templates is done with the language itself; you write code using if-statements and you write templates using static if-statements.
It also has tons of "small" things that make life more enjoyable, arrays and slicing. I really like how easy it is to set up unittesting (and contract programming/invariants), so I use it in my lectures a lot for quick demos.
 

DarkDetective

Banned
Oct 25, 2017
4,906
The Netherlands
Hey everyone. I'm hoping to get a bit more active here as well. I'm a second year university student. My main language is C#. This semester, I'm forced to work with Haskell. Functional programming was pretty difficult at first, but I'm finally starting to get it. A bit too late, but better late than never. It's even becoming fun. I just started with a project for university to build a small game in Haskell with a friend of mine.
 

butzopower

Member
Oct 27, 2017
1,864
London
I really like Haskell's type system. Stuff like Algebraic Data Types are real cool, and something I imagine we'll see in most new languages. If you like Haskell, but want something you can do some web / JavaScript stuff with, check out Elm.
 
Oct 28, 2017
11
Hello everyone! Like others, I am hoping to be a bit more active in this thread since I am majoring in CS atm and afterwards would like to get an M.S. in Cybersecurity. I know the basics of C++, VB.net, and am currently in Java. Are there any recommendations such as books or websites that pertain to cyber security? Also which do you guys think looks better on a resume. Certifications in security or the degree or both? Would that be overkill?
 

metaprogram

Member
Oct 28, 2017
1,174
Degrees. A certification basically certifies you as mediocre in my mind. Even if it's not true, I think that's the perception a certificate creates
 
Oct 28, 2017
11
That's what I had originally thought as well. That they were thought of as some way "less". As you say even if that isn't the case.
 

DarkDetective

Banned
Oct 25, 2017
4,906
The Netherlands
I really like Haskell's type system. Stuff like Algebraic Data Types are real cool, and something I imagine we'll see in most new languages. If you like Haskell, but want something you can do some web / JavaScript stuff with, check out Elm.
I got introduced to Swift, Apple's functional language that serves as their successor to Objective-C, during a guest lecture. That looks pretty cool. (Such a shame there's no Windows module.) It borrows some OO elements as well, which makes it less pure than Haskell, but a lot easier to use.
 

milch

Member
Oct 25, 2017
569
What are my options if I wanna tinker with AR on Android?

IIRC there was something like ARKit, but only supporting Pixel phones? Anything that's gonna work on my OPO 3T?
 

Galaxea

Member
Oct 25, 2017
3,423
Orlando, FL
Alright. Visual Studio is setup and I have the Bob Tabor course ready to go since it caters to beginners of code when learning c#. If I get through this okay, I might go through a month of Pluralsight to learn c# more before deciding on what to focus on. Let's see if I can juggle this, a one year old, wife, and my full time Whole Foods/Amazon job! Haha.
 

Tyranlord

Member
Oct 28, 2017
68
Alright. Visual Studio is setup and I have the Bob Tabor course ready to go since it caters to beginners of code when learning c#. If I get through this okay, I might go through a month of Pluralsight to learn c# more before deciding on what to focus on. Let's see if I can juggle this, a one year old, wife, and my full time Whole Foods/Amazon job! Haha.

Nice! Best of luck with starting haha! I'm sure you will be able to juggle it. An hour a day or even 30 minutes already really helps imo
 

butzopower

Member
Oct 27, 2017
1,864
London
I got introduced to Swift, Apple's functional language that serves as their successor to Objective-C, during a guest lecture. That looks pretty cool. (Such a shame there's no Windows module.) It borrows some OO elements as well, which makes it less pure than Haskell, but a lot easier to use.

Swift would probably be classified as an OO language with a lot of inspiration from functional languages. Functional languages are super focused on constraining variable reassignment, which I pretty sure is not something Swift constrains.

If you want something very similar that works across all OSes, you can check out Kotlin, which is JetBrains fairly new JVM language with a lot of the same features and syntax as Swift. I believe Swift is open source, so it should potentially work on Windows (I know you can compile it on Linux).

TypeScript is also really similar to Swift and Kotlin, and transpiles to JavaScript, if you wanted to write something that works in a browser.
 

Galaxea

Member
Oct 25, 2017
3,423
Orlando, FL
Nice! Best of luck with starting haha! I'm sure you will be able to juggle it. An hour a day or even 30 minutes already really helps imo

Thank you!

I'm an obsessive human being when I am passionate about learning something, so I am hoping so! I spent an hour and a half today doing the "Hello World" tutorial and the following discussions on it. That was a walk in the park and I understood all the errors before he pointed them out. All that 90s ini tweaking for PC gaming and messing with scripts out of being a bored shut-in growing up is helping me, so far. Let's see how the rest of it goes.
 

DarkDetective

Banned
Oct 25, 2017
4,906
The Netherlands
Swift would probably be classified as an OO language with a lot of inspiration from functional languages. Functional languages are super focused on constraining variable reassignment, which I pretty sure is not something Swift constrains.

If you want something very similar that works across all OSes, you can check out Kotlin, which is JetBrains fairly new JVM language with a lot of the same features and syntax as Swift. I believe Swift is open source, so it should potentially work on Windows (I know you can compile it on Linux).

TypeScript is also really similar to Swift and Kotlin, and transpiles to JavaScript, if you wanted to write something that works in a browser.
I never used Swift, but I got introduced to it through a functional programming guest lecture. The lecturer marketed it to us as a program that uses both OO and functional programming elements. I definitely saw the similarities between Swift and Haskell, which is why I assumed it would be a functional language with OO elements, rather than an OO language with functional elements. Again, I never used it firsthand. Thanks for the Kotlin suggestion tho! I'll look into that once I have time.
 

TopDreg

Member
Oct 26, 2017
201
Can anyone give a run down on what is hot in the computer science/programming world right now? Is it just app dev, web dev, and machine learning? I'm having fun learning systems programming, but... I'd like to feed myself eventually. I don't know if learning C and systems programming is the way to do that (even though it's a fun, although arduous, challenge.. hacking the Linux kernel one day sounds awesome).
 

Zevenberge

Member
Oct 27, 2017
570
Can anyone give a run down on what is hot in the computer science/programming world right now? Is it just app dev, web dev, and machine learning? I'm having fun learning systems programming, but... I'd like to feed myself eventually. I don't know if learning C and systems programming is the way to do that (even though it's a fun, although arduous, challenge.. hacking the Linux kernel one day sounds awesome).

I think you're stuck with Java/C#/Javascript for the best job perspectives.
As far as I know, web dev in one way or another is the way to go. Either having a web API in a Docker container or front-end web programming.
 

erd

Self-Requested Temporary Ban
Banned
Oct 25, 2017
1,181
Can anyone give a run down on what is hot in the computer science/programming world right now? Is it just app dev, web dev, and machine learning? I'm having fun learning systems programming, but... I'd like to feed myself eventually. I don't know if learning C and systems programming is the way to do that (even though it's a fun, although arduous, challenge.. hacking the Linux kernel one day sounds awesome).
These are definitely the "hip" things right now, but other fields of programming are still very employable. Things like embedded app development or systems programming isn't going to go away anytime soon, and enterprise programming will always be hiring for a wide variety of languages. It's not the "hip" startup jobs, but that shouldn't really matter.

Just checking stack overflow jobs shows that there's plenty of jobs in the field, although they will obviously be harder to get then something like webdev. But if systems development is your passion, you can make it work.
 

TopDreg

Member
Oct 26, 2017
201
These are definitely the "hip" things right now, but other fields of programming are still very employable. Things like embedded app development or systems programming isn't going to go away anytime soon, and enterprise programming will always be hiring for a wide variety of languages. It's not the "hip" startup jobs, but that shouldn't really matter.

Just checking stack overflow jobs shows that there's plenty of jobs in the field, although they will obviously be harder to get then something like webdev. But if systems development is your passion, you can make it work.

Thank you for the advice. That gives me something to think about. There is a large barrier of knowledge to getting into low level development, but... hopefully I can get there eventually.
 

metaprogram

Member
Oct 28, 2017
1,174
Can anyone give a run down on what is hot in the computer science/programming world right now? Is it just app dev, web dev, and machine learning? I'm having fun learning systems programming, but... I'd like to feed myself eventually. I don't know if learning C and systems programming is the way to do that (even though it's a fun, although arduous, challenge.. hacking the Linux kernel one day sounds awesome).

Pshh. You can totally feed yourself on systems programming. I would call myself a systems programmer, doing mostly C++ with a smattering of Python, and I can do a lot more than just feed myself.

The thing about systems programming is that, while there are fewer jobs out there, the ones that are there are damned important. And hard to fill, because everyone wants to jump on the latest fad. But for that very same reason, it makes it easier for you to stand out from the crowd. I feel like doing web dev, full stack, blah blah <insert buzz word here> you're just another cog in the wheel. If something breaks, you've probably got some redundancy in there somewhere to save your ass and minimize the impact of your failure. But when you're a systems programmer, you are the redundancy. It's much more exciting for me this way, because it means that every decision I make is more important, affects more people, and/or makes more money for the company. And at the end of the day, that translates to more money for me, in addition to a higher sense of self-satisfaction / self-worth.

I've done all kinds of systems level work. from enterprise software to AAA games, to the internals of a popular web browser and these days I'm working on a C++ compiler. Profesionally, I've never been happier and I honestly don't ever want to go back to front-end or fad-of-the-day type of work.

Happy to offer advice or answer questions if you have any.
 

metaprogram

Member
Oct 28, 2017
1,174
What's the best resource to learn template metaprogramming in modern C++?

How familiar are you with metaprogramming in classic C++ (e.g. C++11 and before)? If not at all, I would recommend starting with something that isn't strictly focused on metaprogramming, but more just C++11 in general, but that also touches on metaprogramming. That will probably help to fill in a lot of the holes in your knowledge

If you're pretty familiar with C++ as a language and feel comfortable using C++11, and have kind of dabbled in metaprogramming but want the complete picture, I'd recommend the second edition of C++ Templates: The Complete Guid, which was just released like a month ago. I reviewed early copies of the book for the authors and I think it's very well done and probably the most complete, structured resource you'll find..
 

TopDreg

Member
Oct 26, 2017
201
Pshh. You can totally feed yourself on systems programming. I would call myself a systems programmer, doing mostly C++ with a smattering of Python, and I can do a lot more than just feed myself.

The thing about systems programming is that, while there are fewer jobs out there, the ones that are there are damned important. And hard to fill, because everyone wants to jump on the latest fad. But for that very same reason, it makes it easier for you to stand out from the crowd. I feel like doing web dev, full stack, blah blah <insert buzz word here> you're just another cog in the wheel. If something breaks, you've probably got some redundancy in there somewhere to save your ass and minimize the impact of your failure. But when you're a systems programmer, you are the redundancy. It's much more exciting for me this way, because it means that every decision I make is more important, affects more people, and/or makes more money for the company. And at the end of the day, that translates to more money for me, in addition to a higher sense of self-satisfaction / self-worth.

I've done all kinds of systems level work. from enterprise software to AAA games, to the internals of a popular web browser and these days I'm working on a C++ compiler. Profesionally, I've never been happier and I honestly don't ever want to go back to front-end or fad-of-the-day type of work.

Happy to offer advice or answer questions if you have any.

Thank you for that inspiring post! Alright, I guess I'll keep pursuing my systems passion. I'm not sure if further information should be in a PM, but maybe someone else would find it useful:

I'm wondering if you have any advice about how to get into a low-level entry job? I've read a book on C, pointers in C, and am now working through a massive book on Linux/UNIX system calls. The eventual goal is to get patches submitted into the Linux kernel (which, admittedly, I sometimes feel like I'm in over my head, but it's exciting!). I'm wondering if you might have any advice on what I should do to get an entry-level job in C/C++/device drivers/enterprise software/etc? I know there's more than just OS stuff out there.

I should note that I graduated with my computer science degree from three years ago, so this is how I'm trying to get back into programming (I've never had a job in the field).

Thank you for all the advice.
 

metaprogram

Member
Oct 28, 2017
1,174
Ahh nice, I'm in San Jose. Luckily, there are jobs everyyyyywhere out here. You might try hitting up job sites and just looking. Not everyone wants to pay for highly experienced people. There are lots of entry-level jobs. I know it seems far fetched, but hell even Google will interview just about anyone. It's very easy to get an interview at most of these places, it's just hard to pass.

What field are you working in at the moment, and out of curiosity why isn't it programming?
 

TopDreg

Member
Oct 26, 2017
201
Ahh nice, I'm in San Jose. Luckily, there are jobs everyyyyywhere out here. You might try hitting up job sites and just looking. Not everyone wants to pay for highly experienced people. There are lots of entry-level jobs. I know it seems far fetched, but hell even Google will interview just about anyone. It's very easy to get an interview at most of these places, it's just hard to pass.

What field are you working in at the moment, and out of curiosity why isn't it programming?

Ah okay, well that's encouraging! I had a weird civic service drive coming out of college. Maybe I was burnt out - I got a physics, math, and comp sci degree after six years of confusion. I did Peace Corps, and then I did a year of law school (I know). I realized how much I missed quantitative thinking while in law school and made the decision recently to drop out. I couldn't see myself as a lawyer, and have presently never been more enthusiastic about programming. So... I'm in limbo right now, and without a portfolio, but my family has been supportive.
 

metaprogram

Member
Oct 28, 2017
1,174
You can totally sell that angle when job hunting. For all intents and purposes your'e a "new college grad", not a "person who was unemployed for 3 years after college". Bigger companies like the Googles and the Facebooks love to see that kind of stuff because it means you're "Googley" or... whatever the Facebook equivalent of that word is. Definitely oversell the civic service part on your resume.

Also take a look at Google's Engineering Residency Program. It's almost like cheating, honestly, because it's so hard for experienced professionals to get in but so easy for new college grads to get in, but it sounds like a perfect in for you.
 

Gamespawn

Member
Oct 25, 2017
856
Hey everyone! I'm a current over 30 student trying to finish up my bachelors in CS. Learned Java, C and currently learning Python and SML. Currently not working in the industry but hope to when I graduate in the Spring.
 

TopDreg

Member
Oct 26, 2017
201
You can totally sell that angle when job hunting. For all intents and purposes your'e a "new college grad", not a "person who was unemployed for 3 years after college". Bigger companies like the Googles and the Facebooks love to see that kind of stuff because it means you're "Googley" or... whatever the Facebook equivalent of that word is. Definitely oversell the civic service part on your resume.

Also take a look at Google's Engineering Residency Program. It's almost like cheating, honestly, because it's so hard for experienced professionals to get in but so easy for new college grads to get in, but it sounds like a perfect in for you.

I'll keep that advice in mind. Thanks. Alright then, I'm going to apply to that program! Might as well aim high and see if I can get into a tech giant.

I suppose that means I should prepare for the coding interview.
 

culexknight

Member
Oct 25, 2017
16
Hey guys. I'm wondering, which is the best online resource to learn Python in an structured environment? I already have a fair share of coding experience.

https://stephensugden.com/crash_into_python/
If you're experienced & capable in other languages, I have had this referenced to me by colleagues who didn't know it and needed to get a fire going pretty quickly in a real world environment. Cannot vouch for it myself.
 

vypek

Member
Oct 25, 2017
12,597
in 2 hours I'll have my sql/mysql exam. well, let's see how it goes.
How did it go?

I actually never had a database course in college and I sort of wish it was mandatory. It seems like its necessary to have a basic understanding of DBs in almost any job. Everything I've learned so far about SQL has been on the job.
 

MikeRahl

Member
Oct 27, 2017
421
My Database course was entirely academic. I've learned 100x more on the job than I did in the class. A lot of the class was spent going over normal forms and the ins and outs of how things join up, which is pretty easy to learn on the fly.

What I'm fighting with right now is how people and things get authenticated, whether to use schemas or not and even just convincing people that even first form normalization is a good thing and using an identity column instead of some weird mashed up candidate key isn't terrible. We have one table in our back-end that has over 250 columns... just why.
 

Zoe

Member
Oct 25, 2017
14,309
What I'm fighting with right now is how people and things get authenticated, whether to use schemas or not and even just convincing people that even first form normalization is a good thing and using an identity column instead of some weird mashed up candidate key isn't terrible. We have one table in our back-end that has over 250 columns... just why.

We have a product that allows you to add custom fields to data elements. Not a wild theory, right? Except their implementation of it is to alter the table and add a column each time you create a new field. We have hit the maximum row size in the past and have had to remove custom fields to shrink it down.
 

MikeRahl

Member
Oct 27, 2017
421
We have a product that allows you to add custom fields to data elements. Not a wild theory, right? Except their implementation of it is to alter the table and add a column each time you create a new field. We have hit the maximum row size in the past and have had to remove custom fields to shrink it down.

You win. That is... something else.
 

Zevenberge

Member
Oct 27, 2017
570
We have a product that allows you to add custom fields to data elements. Not a wild theory, right? Except their implementation of it is to alter the table and add a column each time you create a new field. We have hit the maximum row size in the past and have had to remove custom fields to shrink it down.
That sounds like a funky implementation. I have no idea what your domain is like, but wouldn't a document database be better suited for those kind of tasks?

====

Anyway, to vent some frustration: I've spent a whole week or more in Powershell trying to get our CI/CD build street to work again. For context: As sellswords, we are a very heterogeneous company. Our projects range from Java and C#, to funkier languages, with every project having their own requirements and dependencies. Two projects can be C#, but have a very different way of building (think .NET Core vs .NET Windows). Our target is to have disposable build servers, e.g. at every build a project should fix its own dependency tree by apt-getting or nugetting dependencies.
For .NET Core and Java projects, it's very easy. Just host a Linux container, apt-get your build tool and go.
However, our project was still in .NET 4.6. That means we need to use MSBuild (command line build tool for .NET). We also use licensed software, so we have a license file. When compiling the project, the licence file needs to be compiled too with a separate tool (LC, license compiler). However, MSBuild was unable to invoke LC despite locating the executable and putting in the correct command line arguments. I've spent a week searching online because the error message was that a variable (SdkToolsPath) was not defined. The "solution" I found online was to install Visual Studio (it's a build server - why do you need an IDE?) or install Windows SDK (already installed). There is no way to set the variable.
The solution I found rather accidentally today was to upgrade to MSBuild 15, which magicaly fixed everything.

Now we have got three builds for master/develop/release that compile, run tests and build a deployable package. The result is good and nice and fabulous af. But I hoped to spent 4 days less on it and have a lot of less stress :/
 

Zoe

Member
Oct 25, 2017
14,309
That sounds like a funky implementation. I have no idea what your domain is like, but wouldn't a document database be better suited for those kind of tasks?

It's a third party product. Never used a document database before--personally I would have implemented it with a lookup table that cross references the data element and the custom fields.
 

Zevenberge

Member
Oct 27, 2017
570
It's a third party product. Never used a document database before--personally I would have implemented it with a lookup table that cross references the data element and the custom fields.
That's a good solution if you want to stay in a relational database. For one, you don't have an application that randomly alters the database structure.
 

metaprogram

Member
Oct 28, 2017
1,174
My Database course was entirely academic. I've learned 100x more on the job than I did in the class. A lot of the class was spent going over normal forms and the ins and outs of how things join up, which is pretty easy to learn on the fly.

What I'm fighting with right now is how people and things get authenticated, whether to use schemas or not and even just convincing people that even first form normalization is a good thing and using an identity column instead of some weird mashed up candidate key isn't terrible. We have one table in our back-end that has over 250 columns... just why.

We have a product that allows you to add custom fields to data elements. Not a wild theory, right? Except their implementation of it is to alter the table and add a column each time you create a new field. We have hit the maximum row size in the past and have had to remove custom fields to shrink it down.

Have either of you just considered using a NoSQL database? That's literally exactly what it's for.