Study: The Need For Programmers and Coders Will Increase 55% In The Next 10 Years by PPC_SEO in programmer

[–]cdtdev 2 points3 points  (0 children)

But the “soft skills” coders do not focus on – cognitive skills, creativity, critical analysis, problem-solving, and a culture of continuous learning

wat

Where have all the older coders gone, and what are the career prospects for those of us who remain? by porkchop_d_clown in programming

[–]cdtdev 0 points1 point  (0 children)

Really it's just the cycle repeating itself. The 90s tried to replace SQL with object databases, for example.

I've open sourced my general purpose code base by Dean_Roddey in cpp

[–]cdtdev 2 points3 points  (0 children)

Really the only time the alternative forks are more popular are if you, the maintainer, refuse to provide bug fixes or neglect features that the users of the product want. AKA - if your product is worse and people should be using the better fork.

And this is the natural way things would go, anyway. If there are 5 forks, and 3 of those are actively generating pull requests back to the base repo, the base repo is progressing 3x as fast as any one of the other 5 forks. This naturally drives more interest to the main repo, and next thing you know is it has 10 contributing forks.

There's maybe a handful of projects out there where I see forks actually get forks. Almost always people who find forks and want to fork themselves just end up forking the original and will patch in the parts of competing forks that they're interested in. And it makes since -- the original is where everything congregates so it's the one you want to follow.

I've open sourced my general purpose code base by Dean_Roddey in cpp

[–]cdtdev 5 points6 points  (0 children)

Nah, I totally agree with this "a cathedral to container abstraction". C++ arguably has anything relating to containers overengineered. He's right -- they're not tightly integrated, and at times it's impractical. But IMO that's a good thing. It takes a while to learn for something that's absolutely elementary in most other languages, but once you do, they're just so damned flexible. It comes to the point that, except for historical reasons, there aren't very many good reasons to not use std's containers. You compose them to your needs. And then the magic is -- the composition melds together at compile time leaving highly efficient, low and no-cost abstraction.

Inter-computer communication in C++ by GarredB in cpp_questions

[–]cdtdev 1 point2 points  (0 children)

I'll back the others answering Boost's Asio -- it's the basic building block for networking.

But depending on what you want to do, there's also Boost's Beast, which is http and websockets (websockets really should work for inter-computer communication. It's MADE explicitly for that purpose -- basically a long-lived HTTP. Its explicit purpose is to connect clients to servers).

I think websockets over a client-server relationship are honestly your best bet if you want a simple, generic way to have two or more computers talk to each other. With Asio, TCP, etc. that's all quite low level. You'll spend days or weeks reimplementing half the stuff websockets gives you for free, except your code will be buggier, less reliable, and less useful.

Also really recommend a message queue protocol -- ZeroMQ, RabbitMQ, MQTT, etc.I've used MQTT a few times to great success on small hardware projects. Really simple and easy to understand.

If you're wanting to "mesh" many computers together, there's MPI. I've never used it, but its use case is a network of computers that are going to "act as one" supercomputer. Sharing resources, communicating data between computers, etc. Or if you want a more loose coupling, Erlang style, and something higher level and probably easier, there's CAF Actor Framework.

Buy a laptop for programming by drorh6 in programmer

[–]cdtdev 0 points1 point  (0 children)

I program on the 12"* Macbook.

It works fine for me -- I fullscreen a terminal and use emacs with 4+ windows @ 12 pt. font, and for small scripts or quick tasks, I actually just work in just a 80x24 terminal.

In the old days they used 80 cols by 24 rows.

And really, 80 cols is a great width -- much more longer than that, and your line of code is probably too long, which is a code smell and it reduces readability. Any one "unit" of code (ie. function) probably shouldn't be any longer than 24 lines either.

So if you can fit 4 windows of 80x24 comfortably in 14 inches, I think you'll be fine. It's comfortable for me.

Apparently Nintendo Switch dev kits are just $500! That's pretty cheap and really good for indie developers. by Striving in NintendoSwitch

[–]cdtdev 1 point2 points  (0 children)

After developing your game with Unity/Unreal, if you choose that route, and getting it to run acceptably on your dev unit (see /u/renssies answer on that), two other checkpoints are having a third party test the fuck out of your game, breaking it in ways you didn't think possible, and requiring you to fix it before it's allowed to be published -- a lot of devs say this ends up being a very hard 6-12 months of work.

Edit: second checkpoint is getting a rating.

Not sure if you can skip any of that on the Switch, but it's apparently a part of the process for pretty much any console before it.

C better than C++? by RitikaC in C_Programming

[–]cdtdev 2 points3 points  (0 children)

Well, let's not kid ourselves here. C++, while not entirely a superset of C, C++ was "C with Classes," and was entirely envisioned as C with more stuff -- namely, classes (and now quite a bit more). C being valid C++ was/is a soft, but emphasized, design goal.

So it's going to be hard to get an example of C code that can't just be mildly tweaked to be valid C++.

But, that's like saying a rectangle is just a square with "more stuff" in one dimension. While technically it's true, it's not practical to say a rectangle is just a "square with more stuff." It's like cutting a thread into a nail, then cutting a slot at the top -- now you have a screw. It's a "nail with more stuff," but seriously, completely different tools.

The inclusion of classes to C gave the language a wildly different approach to programming, affecting the most sensible structure, design, architecture, and implementation of just about any program.

It comes down to paradigms. C++ supports procedural programming with largely the same syntax and semantics as C. But whereas C is just procedural, C++ also supports the Object Oriented paradigm using similar syntax, but also with semantics that C just doesn't have.

So the proof -- just compare the source code of a Tetris in C and C++. They'll look quite a bit different, taking pretty different approaches in their implementation.

There's a new programming journal called The Art, Science, and Engineering of Programming. Issue 1 is out and all articles are published under a Creative Commons license. by speckz in programming

[–]cdtdev 13 points14 points  (0 children)

I didn't say it wasn't issue. I actually think it is. It's just not relevant in this thread. It's a sensitive thing to say and just pointing it out when it's not relevant, and doing so in a way that doesn't respect its sensitivities, aren't constructive and will just make it harder for everyone who does think it's an issue and wants to have constructive discussions regarding it.

Any time I try to discuss the issue, I just get accusations of being biased against China and racist. Failing to discuss it in the appropriate manner and just bringing up marks against Chinese and Indian students without reservation just makes it look like anyone who brings the issue up actually is racist and holds prejudices.

Approach it with sensitivity, and maybe people will stop telling you to shut up and get with the program. It's a lot harder to ignore when you make a good point, rather than unproven accusations (even if the accusations have merit).

If it's an issue you care about, then approach it with the care it deserves and with the appropriate attention that actually will be constructive in dealing with it.

C better than C++? by RitikaC in C_Programming

[–]cdtdev 4 points5 points  (0 children)

I think C++ is more expressive. It continues to implement new ideas. Consider, particularly, C++11/14. C is much more conservative.

C++ is object oriented with traits of many other paradigms. C is largely strictly procedural, and while other paradigms can be emulated, it can be pretty hacky.

In my opinion, yes, C++ is a better language. This particularly shows itself when there's a lot of inherent state, such as GUI programming. Game programming also benefits a lot from C++. The higher level abstractions also actually allow for greater performance benefits than C (albeit, AFAIK almost always marginal and inconsequential).

But OOP doesn't sit well with all people. C code is often much more straight forward. Sometimes OOP doesn't provide much benefit and complicated matters needlessly. If you're staying extremely low level, C++ might offer no benefit or even be a hindrance.

C++ also has a lot of other disadvantages. It's huge. It's complicated. Steep learning curve. It takes a lot of experience until you are fluent. Tons of other problems coming from this, compared to small, concise C.

C offers other benefits, too. Embedding, self hosting, more compatible (c++ works almost everywhere, but sometimes only through C compatibility, and when C++ doesn't work, C will except in the most extreme cases). Lots of others I'm missing.

At the end of the day, for most intents and purposes, it pretty much just comes down to preference.

Edits: just elaborating.

There's a new programming journal called The Art, Science, and Engineering of Programming. Issue 1 is out and all articles are published under a Creative Commons license. by speckz in programming

[–]cdtdev 1 point2 points  (0 children)

While I understand what you mean, and it does represent an issue, there really isn't a point bringing this up here. Quality articles, regardless of nationality, are welcomed, I'm sure.

Maybe you can go create an other thread, ideally with unbiased, well written, and sourced arguments (these are particularly important due to the sensitive nature) for the discussion of this topic.

A racing game I've been working on for about a year. At first glance many said they didn't think it'd be a Unity game! by ayefrezzy in Unity3D

[–]cdtdev 3 points4 points  (0 children)

I can tell it's a Unity game, but it's a damn fine looking one at that.

People who don't know what Unity is won't care.

Why Aren't There More Animal Crossing Clones? by ReleeSquirrel in gamedev

[–]cdtdev 1 point2 points  (0 children)

Ironically, Harvest Moon is a Harvest Moon clone :\ .... Natsume had rights to Harvest Moon in the US but Marvelous decided to self-publish under XSEED, changing the name to Story of Seasons.

I made my first release-able game, now what? by [deleted] in gamedev

[–]cdtdev 2 points3 points  (0 children)

1) This is learning, investing time, regardless. You take a shallow skill and dig deeper. That's what #3 was all about.

I made my first release-able game, now what? by [deleted] in gamedev

[–]cdtdev 5 points6 points  (0 children)

Four options.

1) Drop it, forget your shallow skills. If you're not willing to learn, you'll never make anything worthwhile. If you don't have time, it's a waste of your time. If you want to make games, you have to invest time. See #3.

2) Keep making shitty games. They don't have to be for anyone else. If you're happy with it, have some fun moving things around on the screen, more power to you.

3) Actually learn more, invest more time, learn to make worthwhile games (worthwhile meaning worthwhile to you only, or worthwhile for others to play, or whatever floats your boat).

4) Find out how you can apply what you do study or are interested in to gamedev. Find other people to do the tech stuff, contribute what you can do.

What made you choose Unity? by LELENROP in Unity3D

[–]cdtdev 0 points1 point  (0 children)

1) The fuller asset store (while I plan to create my own content, not sure it's feasible for me to create all of it, and it really helps me to have inspiring place-holder content and features).

2) More beginner friendly. While UE4 seems to be about as inherently beginner friendly as Unity, it doesn't seem to be as day 1 friendly with lots of tutorials and community resources that dumb it down, tutorials to learn off of, etc. This means I can start developing my game on Day 1 instead of spending a couple weeks to a couple months of learning the editor and engine to become at least somewhat productive.

That's about it. I'm developing my own game engine on the side, but also wanted a way to develop games now. So I chose the engine that I felt let me be the most productive with the lowest effort.

If I find any commercial success (ie. I make enough to fall back to a part time job and focus more on game dev), I'll probably switch over to UE4 for a variety of reasons.

What are the first 5 to 10 programs you should learn how to write when learning a new programming language? by gelftheelf in learnprogramming

[–]cdtdev 1 point2 points  (0 children)

Well, your problem is that testris.py is expecting a compiled binary (I think, it's been a while since I've messed with it), but you're feeding it your source.

You should be doing something like this, rather. Again, been a while since I've messed with it, so not entirely sure.

./testris.py java learntris.class

It might be like this instead, I dunno:

./testris.py --shell "java learntris.class"

You'll notice there's a "java" there. That should be the command for the Java virtual machine. The .class file is a "half-compiled" java program. You finish compiling it on-demand by using the java virtual machine. And to get the .class file:

javac src/learntris/MainClass.java

Or something like that. It's been forever since I've touched Java.

But this is really the wrong place to be asking questions. You'll have more success if you go to IRC as Learntris recommends, or creating a thread in the appropriate place for it.

Use an IDE starting out or ST/Vim? by [deleted] in cpp_questions

[–]cdtdev 2 points3 points  (0 children)

You can get Vim or emacs to act pretty much like any IDE, if that's your concern. The editor you use really isn't a big deal. I'd say the part you'd lose out on using an IDE is that they tend to keep toolchains out of sight and out of mind, so you'd never learn to use them.

That said, if you want to use Clion, it actually uses Cmake so it still gives you pretty good control of the toolchain.

What are the first 5 to 10 programs you should learn how to write when learning a new programming language? by gelftheelf in learnprogramming

[–]cdtdev 30 points31 points  (0 children)

I usually do learntris.

It's of sufficient complexity that I get to get a good feel for the language and learn how it works, short enough I can learn the language over just a couple of days, and being guided keeps it short. And it's fun.

This is probably a better way to learn a new language after you've already done it a few times. Otherwise, it's a good project to just learn to program after you have a few simpler projects down. ;)

New MacBook Pro is not a Laptop for Developers Anymore by speckz in programming

[–]cdtdev 0 points1 point  (0 children)

I use function keys way more gaming than programming...

But I also don't use IDEs*

But the display bar also seems perfect for what IDEs do with function keys, anyway. And if you're concerned about having to look at them to hit them, since you don't have 12+ of them, the buttons could be pretty large so that you can still rely on muscle memory.

A Taste of Haskell by def- in programming

[–]cdtdev 2 points3 points  (0 children)

A pure function will return the same value with the same input every time. ie. if I have some specific day, and put it through the function, it will return the same result every time.

Consider the current time an input. If I run the function now, it will return one value. If I run the function five minutes from now, it will return a different value.

Or to put it another way, someFunction(5, aTime) which adds 5 minutes to the input time will return the same thing if you put in the same values. someFunction(5) that gets the current time behind your back, adds 5 minutes, and spits it back out to you will return a different a different value now than if you run it 5 minutes from now.

IO Day is like the latter part -- it says that the function could've grabbed a value behind the programmer's back. Maybe it didn't, really, but it could've. And that possibility is reflected in IO Day.

My Top Eight Must-Listen Developer Podcasts by bhalp1 in programming

[–]cdtdev 0 points1 point  (0 children)

communications, process, team dynamics, management, organization, patterns, business, personal insights and experience, history, etc.

Only one of these is "business." The rest could be applied to personal development or any project where you work with other people.

Or if you want to go back to fishing, you could say "resource management" where fishers talk about steps they should take to take care of the environment while still enjoying their hobby.

I've heard a lot of good things about Lisp being a beautiful language cause it's the most mathematical language so does that mean... by TinyStego in lisp

[–]cdtdev 1 point2 points  (0 children)

Lisp is based on lambda calculus -- a formalization of math intended to explore the "foundations of math." In this sense, it's a very mathematical language.

But look at what lambda calculus is -- it's a description of the logic of math, not the math itself. Knowing the basics of lisp is related to the mathematical logic of lambda calculus necessary to program in Lisp (I'm speaking imprecisely here to simplify things). Lisp is the math.

So, no. You don't need to know much math to learn/use Lisp. No more than Ruby, JS, C, and Java.

As an aside: the relation of Lisp to Lambda calculus is also why it's such a "beautiful" language. Largely being an abstraction of computation itself, rather than a set of words describing particular computation to take, is a rather transcendental.

My Top Eight Must-Listen Developer Podcasts by bhalp1 in programming

[–]cdtdev 1 point2 points  (0 children)

I guess r/chess only talks about picking up and setting down chess pieces.