Without a CS degree of some sort you're going to need to prove you can code. Dabbling helps but you'll need to show work experience.
Getting work experience without a CS degree likely means taking jobs that aren't otherwise appealing.
Contracting or freelance can be a way to get that experience since the bar for proof is often lower, especially when working in non-technical industries.
But those are jobs, and they pay money.
If you have the financial means and can attend a reputable school, I'd recommend getting the masters, or even a bachelors.
Having that degree, and learning what they teach you in a CS program, will help you get a much better job and will help you perform in that job earlier than learning as you go.
You're going to need to make the call if you can afford the short term financial hit/investment.
So, if I'm a full stack developer without a CS degree, would you say it's worth it to take a shitty software development role @ a Uni to go back and get a CS degree?
I say it's shitty because they don't follow best practices and just focus on pushing out workflow apps as quickly as possible. No docs, old tooling, etc. Really a mess.
That's the situation I'm in now, first full time job. I majored in business [first economics, then MIS], big mistake. Now I'm working for the uni with plans to get a second bachelor's in CS beginning in the Fall (for free).
People always ask me why I majored in business. I've had recruiters say to me "Have you considered a minor in CS", etc. despite a very nice portfolio and 2 years worth of clients.
So, since I must deal with HR and would like to be taken seriously as an engineer, I'm going against the advice of the great Charles Manson and going out of my way to prove something to the phonies.
Plus, I wanna learn my maths much better but can't bring myself to go it alone so I figure it's worth it in that regard.
> I say it's shitty because they don't follow best practices and just focus on pushing out workflow apps as quickly as possible. No docs, old tooling, etc. Really a mess.
I doubt schooling would fix this. It tends to be more about theory and algorithms than building "real world"(depending on what you're doing) apps.
Also, those are problems you can fix by reading a few books on best practices, learning from your team, keeping up to date on tools and just doing it (docs). If anything, the school would likely be behind on things like tooling and many best practices related to the modern frameworks.
It's not all bad, you'll learn things that from time to time come in handy, but getting a CS degree won't turn someone into a good programmer. That's a skill you'll develop over time from doing it and learning from others.
I'm already well aware of best practices and I was really surprised that they didn't have any documentation or anything.
I meant, is going to school for CS worth working at a place like that.
They really aren't willing to make changes, as I said the goal is to push out apps as quickly as possible.
Coming from my previous job, where I was the only developer, I have full jsdocs/phpdocs, quite a few tests and high level user manuals. They have nothing resembling that.
Is the CS program high quality? If yes, then the job you work in order to attend that program is merely a means to an end. Think of it as waiting tables, just slightly more related to what you're interested in.
You could take the opportunity (not too quickly, be mindful of politics) to make a case study out of it and attempt to apply some best practices, it sounds like it could turn into a thesis about software development in the real world.
Be careful; it currently relies on the Objecive-C runtime which is not present on non-Apple platforms.
As the PR says, it also doesn't handle turning throwing functions into errors, nor does it check for collisions.
Another thing you can do is declare a function pointer type in C and assign to it from Swift by calling a C setter function (more or less a small trampoline).
>it currently relies on the Objecive-C runtime which is not present on non-Apple platforms.
Maybe I misunderstand you, but this doesn't seem to be the case, at least not in Swift 3.0-RELEASE. I was able to use @_cdecl for a callback in a Tcl extension (https://tcl.wiki/48057) on Linux.
Exposing a c function from an objective-c file, and then calling into our swift code from there is what we've been doing since before this feature was enabled. That of course also requires the Objective C runtime, but we haven't changed to @_cdecl mainly because I'm more worried about the behavior changing than I am about anyone trying to run our swift code on Linux.
Assigning a block to a c function pointer is an interesting alternative, I thought we tried something like that but I can't remember now.
Hopefully @_cdecl will become a documented and supported feature.
Well, yes, but I'm unsure why you think that the calling convention has anything to do with the mangled name. That is just a name after all.
The name above is the name used to link the functions. The calling convention says how such functions end up being called and is directly represented by the machine code the compiler generates. For example, in which registers arguments are passed, or whether they are passed on the stack and in which order, etc.
The C `__cdecl` traditionally just specifies the calling convention, not the link name which is specified by `extern C`. Looks like the Swift `@_cdecl` combines the two.
I think in contrast the `@_silgen_name` just specified the link name and not the calling convention. (the result is exactly the same like your example). This is precisely the issue with using `@_silgen_name` - you have to be lucky that calling conventions happen to be the same for simple setups, like `(Void)->Void` or `(OpaquePointer!)->Void` - which seems to be the case at the moment.
"P.S.: I'm unsure why anyone would think that this has anything to do with the Objective-C runtime. I guess it may if you pass any kind of ARC objects."
Because the comment on the commit that adds this to the swift source states that "It relies on ObjC interop".
does seem to work just fine for now. Could change in the future of course, though I wonder how likely it is that the calling convention for this kind of Swift function is actually going to change.
Note that the whole purpose of the function is to enter the Swift side from C just once. After that all is good, you can register any kind of convention-C callbacks.
What I'd like to see is the ability to specify `@convention(c)` not just on types, but also on functions and structs. That would be sweet and reduce the requirement for C wrappers even more.
I was either told or read (during the 2.x time frame) they were likely going to break @_silgen_name. @_cdecl was added to replace this (at least for my usage case), but I think it is still unfinished and not official, hence the leading underscore.
It happens that @_silgen_name didn't break for me in 3.0. But I've been moving to @_cdecl.
Old media is still producing the content. Netflix doesn't own lots, or cameras, or catering trucks. This is predominantly a change to financing and a change to what type of shows get produced. It's not a change to who produces them.
Old media is still producing the content. Netflix doesn't own lots, or cameras, or catering trucks.
Those aren't the the part of old media that people are dissatisfied with. Who decides what gets produced? How do advertisers affect the decisions? Isn't that what is changing? Also, aren't the decisions at that level what viewers tend to be dissatisfied with?
What's interesting to me is that while Netflix is often the primary financier, the traditional studios are still the ones producing the content.
If Netflix has found a worldwide market for content, that's good news for the studios they're hiring to produce that content.
I'm curious if the additional revenue from Netflix, and presumably Amazon, Hulu, and a nervous HBO will be enough to offset the declining revenue from broadcast TV.
It was happening well before the tech boom. Venice was the last stretch of cheap sand in 200 miles, it was going to gentrify with or without Google or snap or any particular industry.
The retail explosion of Abbot Kinney, for example, predates any tech presence. Venice became cool (and safe) and then the tech companies moved in, along with everyone else.
Back in the '90s some government agency released a redacted report where someone had gone in and drawn black boxes in the PDF file, but the full text was of course still in the underlying data and people were able to get at it relatively easily.
EDIT: apparently this has happened repeatedly, according to a quick google search.
No doubt some sort of knee jerk process was put in place to ensure that any digital release of redacted documents must be scans of a physically redacted source.
Likely because buying the rights to broadcast sports is expensive, free-associating talking heads are cheap, and subscriber revenue is down.
It's a vicious cycle.
I'm sure they are well aware that they're behind on the transition to streaming but are stuck with long term existing contracts that don't give them the rights they need.
The leagues want to go direct when they go streaming. Why would they need ESPN as an aggregator?
It's not like Netflix or HBO where you turn it on to browse, you're there to watch a specific game.
Very impressive. This has some features we've been missing in bitbucket/gitlab/github and it looks like the UI is well thought out and still simple.
The IDE-like source parsing is interesting, and I disagree with some of the other commenters here that that should only exist in an IDE, but the java limitation makes that just a novelty for us.
Particularly though the gerrit-style workflow and the rules engine for permissions is enticing. We'd love to move to something like gerrit but don't want to give up the friendliness of bitbucket/github.
https://en.m.wikipedia.org/wiki/Männergarten