2020-02-10 16:18:54

Hello!
So what if I want to work as a programmer? Do I need to know C and C++ very well for some standart business tasks? I am trying to focus my learning on something that will give  me money so this is why I am asking.

If you want to contact me, do not use the forum PM. I respond once a year or two, when I need to write a PM myself. I apologize for the inconvenience.
Telegram: Nuno69a
E-Mail: nuno69a (at) gmail (dot) com

2020-02-10 16:59:53

Is it necessary, no. Could it help, absolutely.
Do you need to know programming and electrical engineering to know how to operate a computer? Not necessarily, but it helps to know some stuff when things go wrong.
most high level languages are built off of c and c++. BGT and python are examples of this. If you have a basic understanding of the c or c++ code that goes on under the hood of python and BGT that could help you better debug issues you encounter in the higher level abstracted language. The same can be said for c and c++. Is it necessary to learn assembler to know c and c++? not really, but it can most definitely help. Every time you take a step lower into the layers of abstraction, it helps you understand what's going on above it.

I don’t believe in fighting unnecessarily.  But if something is worth fighting for, then its always a fight worth winning.
check me out on Twitter and on GitHub

2020-02-10 17:59:25

Yeah, the short answer is it depends on what you're doing. That being said, it is always a good skill to have, and C itself isn't that bad conceptually. One of those easy to learn difficult to master sort of things. It has a few basic concepts, and the rest is being clever with  what you have. C++ on the other hand...Is pretty much the programming equivilent of let's cram everything but the kitchen sink into this language...And you know what, throw in the kitchen sink  because a magazine article said we wouldn't/couldn't. That being said, both languages are quite useful and there is still need for people who have proficiency in these languages.

I have a website now.
"C: God's Programming Language
C++: The object-oriented programming language of a pagan deity" -- The Red Book
"There, but for the grace of God go I"

2020-02-17 21:41:24

You don't need to know C/C++ to get a job. Most modern software isn't written in them, many modern colleges are starting to not teach them, and most programmers don't know them anymore.  It can be good for learning, and for some software (i.e. OS development, audio/video coding,  web browsers, embedded stuff) it's necessary.  But in the general case, most of the modern money is in ReST microservices or things like that where C/C++ are actually liabilities, not assets (there are a huge number of ways to crash in C/C++ that other languages don't allow to happen).

That said, knowing them can be worth lots of money; Cloudflare and Google need it, among others.  But you can easily make 6 figures with just Python, java, or Go.  C++ is more of a get a raise one day or wow isn't my third job here at Google paying $200000 great, not a first programming job thing.  Given how hard they are to learn my advice is to leave it for later.  The only reason C/C++ mattered for me is that I decided that when i most recently hunted for a job that's what I wanted to do if possible, and even then jobs that were asking for them were almost impossible to find (lots of Java, lots of Go, though).

If all you care about is getting a job, to the exclusion of everything including fun, go learn java.  Tons of places hire for it, but it won't be amazing startup or anything, it'll be enterprise grocery store shopping cart backend or something like that.  The language is kind of meh, you won't be doing games with it or anything like that, but it will pay well (anywhere from $50k to the low 6 figures, at least in the U.S. market) and you will have job security.

My Blog
Twitter: @ajhicks1992

2020-02-17 21:44:13

I do like programming, but I don't thin kC/C++ will make me like it more.I love it now. Thank you Kemlorn, I will learn Java, as I know C# well enough I guess.

If you want to contact me, do not use the forum PM. I respond once a year or two, when I need to write a PM myself. I apologize for the inconvenience.
Telegram: Nuno69a
E-Mail: nuno69a (at) gmail (dot) com

2020-02-17 22:40:08

If you already know C# Java is a good choice.  This will get you away from the sometimes inaccessible Microsoft tooling, and Java is almost a subset of C# so learning it should be pretty easy.  Amazon uses lots of Java, for an example of one place you could end up one day.

My Blog
Twitter: @ajhicks1992

2020-02-17 22:59:10

We're gettign slightly offtopic, but what chances are that I get a job in the field. I don't mean super ultra hyper payouts, just enough to get going. I will be leaving the home soon and I don't want to depend on others. WHat would you recommend? I am currently 17 (half a year to 18) and I want to start up pretty quickly.

If you want to contact me, do not use the forum PM. I respond once a year or two, when I need to write a PM myself. I apologize for the inconvenience.
Telegram: Nuno69a
E-Mail: nuno69a (at) gmail (dot) com

2020-02-17 23:41:56

What are the chances that you get a job eventually: probably pretty high, if you stick it out.  What are the chances you get a job if you graduate high school, have no programming projects, and don't intend to get a CS degree: pretty low.  I make 6 figures, live alone in Seattle, and I have health issues that make blindness the least of my problems in many ways.  So it's certainly doable, but yeah, it'll take some work.

Both the easiest and hardest way into the field is college.  The easiest, because coming out of a college degree gets you something that a lot of people expect to see.  The hardest because it's a 4 year or more time investment and being blind makes it harder still.  The feasibility of this will depend where you live and what your high school grades look like.

But there are other ways.  Go learn Go, figure out something impressive and not an audiogame to do as open source, and spend a couple months on it, then ride the Go hype into a job.  You can do this with other languages and whatnot, but it's not guaranteed and what you need to use to try it changes all the time.  I'd say this is the one you can do in the shortest amount of time, but also the one that'll be the least likely.

Go get really good at algorithms and data structures, as well as a few other CS concepts that Amazon and Google like, and then pass one of their interviews, and they may very well bring you in as what they call an Engineer I.  Amazon and Google like to see college but it's not a firm requirement; they care more that you can answer their interview questions and can code.  If you want to see what tech interviews look like, pick a large company you'd want to work at and start googling for preparing for company-here interviews, and you'll find lots of stuff that'll give you some idea what they want.  Then go learn it on your own.

Go contribute to an open source project for a couple years by someone like Mozilla, and then apply for jobs when they open up.  I almost got my first job that way, actually; I ended up opting into something a friend from college was doing, but having worked on the Rust compiler got Mozilla interested in talking to me.

There is a shortage of programmers.  This works in your favor.  You're blind.  This works against you, if for no other reason than that a lot of people will dismiss you for it.  Job 1 is hard.  Job 2 is much easier because you can use job 1 to prove that you can do the work.

My specific path was college.  During college I did Libaudioverse, my unfortunately unfinished thing for 3d Audio, then I got involved with Rust (a programming language) and worked on their compiler for 6 months because I was bored and was dealing with personal stuff that prevented job hunting.  Then it came down to Mozilla, who was interested in me because I'd worked on one of their big open source projects, and my friend from college.  I ended up going with my friend from college, using Libaudioverse and my Rust compiler work to build a resume (yes, stuff you didn't get payed for counts), then I spent almost a year on call 24/7 on a massively undersized devteam at a tech startup.  This was stressful, but it gave me the resume sufficient to put me in the field and the savings to leave Florida and come live alone in Seattle, and now I have a sane 9-to-5 making $130000, with health care and equity.

I also know a lot of sighted people, and I have a sighted friend doing this now, who will find small jobs that pay barely anything to build the resume and then use that to get something bigger.  If you get a bit of a resume going, you will probably be able to find very small tech startups that will be happy to pay you almost nothing as compared to the wider programming market, then put them on your resume and work your way up.

If you are more generally interested in leaving home and don't care if it's programming, accessibility testing pays well, though I can't point you at specific places (he was an outlier, probably, but I once knew someone making $90000 doing this).  In the U.S., getting into Randolph-sheppard (running a vending machine/restaurant) can pay well.  If you have a roommate and want to live meal-to-meal you can make it on government benefits, assuming that you're in a country that has them, then work things out after you've worked out living alone.

Finally, it's easier to impress people than you think, and if you go the project route you really want to maintain a blog.  I tell the story about how I started programming on a Braille 'N Speak 2000 all the time when I was 10 or so, and the sighted tech people love it.  If you can get something cool going on and you can get it onto somewhere like Hackernews, you can get 10000 eyes on you.

Anyway, hope this helps some.  I was where you are once upon a time, w.r.t finishing high school and not having any idea what would be next, and somehow managed to half-stumble, half-plan my way into success.

My Blog
Twitter: @ajhicks1992

2020-02-18 10:16:09

Thank you kemlorn for your detailed reply. I will definitelly take these thigns into consideration.

If you want to contact me, do not use the forum PM. I respond once a year or two, when I need to write a PM myself. I apologize for the inconvenience.
Telegram: Nuno69a
E-Mail: nuno69a (at) gmail (dot) com

2020-02-18 17:32:07 (edited by Owod 2020-02-18 17:33:33)

C# make you to be hostage of Microsoft platform and narrow way. For people that still didnt choose the technology - i recommend look at JavaScript. For my opinion its got a few pluses like:
1. Crossplatform (any system, any device);
2. Market demand (web take a big part now);
3. Universal tool (front-end, back-end);

2020-02-18 18:51:19

C# has at least one non-microsoft implementation (possibly 2, but the other people I'm thinking of probably use Mono, maybe 3 if we want to count Unity).  It also runs on Linux, has .net core which is CLI driven, and as of a couple years ago most of the tools are open source to one extent or another.  No one's holding anyone hostage.  The only real downside of it is that professionally speaking the jobs are still primarily going to require Visual Studio and depending on what version and what screen reader that can be difficult.

My Blog
Twitter: @ajhicks1992

2020-02-18 18:53:04 (edited by Ethin 2020-02-18 18:54:17)

@10, I'm not exactly sure what your getting at. JavaScript has some huge problems, especially projects made in it like Electron, which make web developers believe that they can make apps for the desktop (which is not what you do with electron -- electron is not desktop development, its web development thrown into a glorified, rebranded web browser with a massively over-bloated runtime). Saying that C# makes you a hostage of MS is like saying that using Rust makes you a hostage of Mozilla, Go makes you a hostage of Google, or that C/C++ makes you a hostage of ISO. None of that is true, of course. Furthermore, C# has all the benefits that you listed that JS has. Plus, this topic wasn't about JS or C# but about C/C++.
I'd strongly encourage the learning of C/C++ if only for the advanced experience and knowledge you'll get out of the experience. There are many things in higher-level languages that you just miss out on if you learn them. C/C++ allows you to learn C, C++ or both while also allowing you to drop into assembly if you need to. Though the languages are complex (and many compilers just love to use old standards instead of the latest, like I personally think they should, by default anyway) you'll find that C is very simple. C++ is much harder to learn, though you'll find that it may be more relatable to what you know already.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2020-02-18 22:04:47

Thank you @Ethin. I like gaining knowledge but noone's gonna pay mi bills right? I know C/C++ on a basic level, so now this is a matter of extending the knowledge I have, learning best practises and optimizations.
@Kemlorn, I do use Visual Studio with a pretty high success rate. What VS can't do, Rider can and I use these two interchangeably.
Webdevelopment is not my thing anyway.

If you want to contact me, do not use the forum PM. I respond once a year or two, when I need to write a PM myself. I apologize for the inconvenience.
Telegram: Nuno69a
E-Mail: nuno69a (at) gmail (dot) com

2020-02-18 22:26:38

From the sighted perspective, Electron makes fine desktop apps.  From the perspective of someone who put in the work to use Aria properly (me), Electron makes fine desktop apps from the screen reader perspective (i.e. you can't tell it's not native controls, you don't have to leave focus mode, etc).  But Electron is resource hungry if you're not careful and has a 100MB or so footprint and doing what I've done with Aria takes a lot of work, so on the whole use with judgement and care.  However that said, React is a very nice way to make UIs even if you're blind, and a lot of the things Aria enables simply by adding attributes to the DOM require hundreds of lines in other languages.

My native-esk controls may one day see the light of day.  I've been very very slowly working on audiogame Unity in Electron (WebAudio has working HRTF), but the job takes most of my programming energy so the personal projects never happen.

But to be on topic, yeah C/C++ will teach you a lot, it's just not the kind of thing the modern job market cares much about, and if you value having finished projects etc it's probably better to look elsewhere.  But I perversely enjoy C++ myself, especially modern C++.

Also the standards situation has gotten better.  Almost everything supports all of C++ 17 and it looks like almost everything will have support for C++ 20 in a few months.  Plus, these days you can install Clang on Windows and use that instead of VS, which gives you all of the latest language  features, and it seems that perhaps they're porting libc++ given that Chrome is talking about switching off MSVC's standard library, which means a relatively rapid pace of development for C++ library features if anything ever comes of it (but even then, VC++'s standard library isn't actually bad these days either).

If I had a time machine, Clang on Windows, some of the modern C++ stuff, OpenMP, address sanitizer, and some of the Windows API changes for audio stuff would have combined to give us libaudioverse in a 1.0 state rather than in a "I will never get a month of continuous time off to finish this" state.  Probably would have cut the development time in half.  But then if I had a time machine, I'd probably also explain to myself that WebAudio was going to start mattering.

My Blog
Twitter: @ajhicks1992

2020-02-19 00:07:09 (edited by Ethin 2020-02-19 00:08:29)

@14, I'd say that what takes hundreds of lines in C++ to emulate ARIA really depends on the UI toolkit your using. I can make a QT control that's (not) custom accessible in a single line of code. For custom controls it can be harder. I don't consider Electron "desktop development". If you can make an electron app as tiny as a desktop app, then I might consider that a bit more native. But please get rid of the damn web browser. Use native controls that already exist for the platform (e.g. GTK/QT or WinAPI). On those platforms where there are multiple, either use QT (which is good enough) or go with the platforms default toolkit. There's absolutely no point in embedding chrome just to make web devs feel like they've accomplished something when they really haven't. Your literally taking a website and turning it into a binary. There's no fun or accomplishment in that. That's my opinion but its irritating when I see everyone going towards electron. Especially since Electrons accessibility is only available on Windows and Mac and not Liux for supposed "performance hits" of which there is no evidence.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2020-02-19 03:09:59

Linux accessibility is terrible to the extreme from a technical perspective and has a tiny number of blind users.  Chrome not investing time there is frustrating, but it almost certainly comes down to money, not performance hits.  That said, I also wouldn't be surprised if it turned out that Linux accessibility has performance hits beyond the other platforms for some technical reason that we're not aware of.

Electron gives you a cross platform experience with code that can also be used on the web, automatic updates, automatic installer building, and the ability to get web devs working with it.  The value add to a sighted business is tremendous.  And to be honest the value add to the projects of mine where it's a good fit is also tremendous because of things like React.  Plus the entire Node.js ecosystem is available to you, which makes any networking task you can imagine easy--databases, custom protocols, VOIP, whatever.

I have considered prototyping React backed by WX.  This is a huge project that won't happen and I really wish React Native would support desktop platforms, but all the money is either web apps or desktop apps, so that'll probably never happen.

But to be sort of on topic: knowing JS isn't a bad idea.  node.js is backend and absurdly popular, probably in the top 5 things that people use to write server stuff in these days.

My Blog
Twitter: @ajhicks1992

2020-02-19 03:47:49

@16, fair enough. I just hate apps that are ridiculously huge for no reason. Electron would be far better if it just used the native built-in web browser engine.
Linux's accessibility is a paradox of sorts: the accessibility is terrible because there are few users and very few contributors to Orca and ATK and vie-versa. The paradox needs to be broken though but more people need to move to Linux to break it.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2020-02-19 17:17:29

Hi there,
@Camlorn: when we already began the topic of getting work as a programmer, I would like to ask you, what are your experiences of working in sighted teams?
I mean, contributing is probably easy, as things like git or svn are handled primarily from command line, although I don't like merging branches, that's for sure. But how did you deal for example with uml diagrams and discussing used architecture?
From what I've been told from professors at my possible future college, actual coding is just a minor part of development, more time is spent by discussing used architecture of the program and splitting the work between teams and team members.
i don't know if it's true or not, but at least I understand that planning common aproach and splitting the work is an inevitable part. So, how did you deal with this? With things like uml diagrams, uml presentations, and their parts - classes diagrams, deploying diagrams etc.
I have been considering using Plant uml for this purpose, as it could work in theory, but as we know, sometimes good looking techniques reveal considerable flaws when used in practice.
So I would like to know, what were your experiences, what actually worked and what did not.
It's possible that I'll be taking some programming work in near future, so I don't just need to solve these questions, but i'll be also asked for their solution, so having something verified could be quite handy.

Thanks!

Best regards

Rastislav

2020-02-20 03:03:46

I have had 2.5 jobs.  I say 2.5 because the .5 was when a coworker and I ended up starting our own contracting company, so for the purposes of this discussion I discount it since the workflow there was under our control and could be whatever we wanted.  I have also done significant OSS work with Mozilla.

I have used UML exactly zero times since college.  I also didn't use it much in college but that's more because colleges in Florida are terrible and less because it's not used in colleges.

There are two kinds of development.

First, and what your professors will tell you all about, there's  Amazon/Microsoft/other big enterprise corp where projects take on the order of months, and you'll have managers who talk about insert software engineering terms here because it's their job to manage people, not to actually understand the programming side of things.  They're valuable because accurately knowing the status of 50+ people across 3 or 4 segments of the org at any given time is actually a really hard thing to do.  UML and whatnot comes up because it's a very effective tool in that environment.  I can't speak much to this sort of thing though because it's not what I do.  That said I know of blind people at Amazon, I know of blind people at Google, I count among my circle of friends two blind people from Microsoft, and if I were to reach out to friends of friends of friends I could probably come up with more.  No one has ever said "You know, UML is really a problem".  I suspect that's because in practice you just need to listen to be on the same page as sighted colleagues, who are using the diagrams for lack of having developed short term memory to the extent that we have to for day to day living.  Additionally of the sighted devs I know, not once has anyone said anything about having made a wonderful architecture diagram or whatever.  In so much as college is like the real world they're right in that development at these sorts of places is slow, but in so much as it's not no one is sitting around doing diagrams for weeks before they program or anything like that.

Also, Microsoft etc are moving away from the "waterfall" model with teams of 50 people to newer stuff that I will now discuss.

The second kind of work started at small startups but is slowly making its way up into bigger orgs.  I believe Google also does something like this, though you see it primarily at smaller shops (where small means around 100 people total for the business or less).  It's called agile.  If you go look around you'll find all sorts of descriptions of boards and stuff, all of which entirely miss the point of it.  In agile, you work on small teams on projects, so say 3-5 people, and every so often you all sit down and decide what's due by the end of the "sprint", which is usually a couple weeks.  None of this involves UML because, as opposed to the older style that's going out of fashion to some extent, you're just given free reign, at least comparatively to what college is teaching you about.  You'll get into the code review, and people will critique then, so it's not like you get away with poor quality.  But there's a trust put on you that you'll do a good job.  My current job is somewhere between agile and big org waterfall: other people figure out requirements, then it turns into a Google Doc that lists off exactly what we'll build, then it gets handed to someone as the leader of the project with 2 or 3 other people who might be relevant to it factored in as people who should expect to be pulled from what they're doing as support or what have you.  Timelines are usually expected to be about a month and then you just go do your own thing and make it happen.

If this sounds vague overall, it is.  What I can say with a more definite tone is that I think maybe diagrams being a problem came up once in my career so far and in so far as diagrams are typically available they're almost always out of date enough that they're wrong anyway.  Additionally I've had a grand total of one coworker who talks about design patterns and even that doesn't come up day to day.  The problem with being specific is that every org does all of this differently.  College treats it like some sort of clinical thing where you do almost as much planning and documentation as coding, apply the multiple inheritance single universe multiplexing refactoring design pattern in order to maximize team utilization and eliminate the critical path or whatever, and it's just not that way, especially nowadays when software is big and complicated enough that expecting all the people on the team to be on the same page is no longer feasible.  And by not being on the same page I mean literally some of your team members may not know all of the programming languages involved in the project.  JS for frontend/something else for backend is a common divide, but my work currently also has some Haskell and some OCaml because I found a cool job that uses tools I always wanted to work with, and I think only 3 of us can competently read Haskell and a different 3 or 4 of us that I'm not among can competently read the OCaml parts.

Now, all of that said, don't do contracting unless it's a team with sighted colleagues.  If you do contracting all of that about how UML/etc aren't important gets thrown out the window because the UML/etc is legally binding and half the project is someone working with the client to design the thing and set a price for the thing.  The 0.5 job that i'm discounting was contracting, and it worked for me because it was 3 of us total and everyone was onboard with incorporating the blind programmer, but I swear I literally did more paperwork and meetings than programming for almost a year when we did it.

And also keep in mind that at least in the U.S., somewhere like Google is going to accommodate you.  I interviewed at Amazon.  I didn't get it, and after I found out just what I'd be doing I'd have not taken it because it'd have been working on parts of Amazon that I'm ethically opposed to, and overall between my experience and the experiences of most others I've spoken to I'd advise people not to interview there because where your team falls on the scale from ideal job to you are working 24/7 all the time because they won't get you more people and it's still not good enough is just a massive lottery with them.  But they literally had someone whose job it was to call candidates with disabilities to talk about what accommodations you'd need for the interview.  Even the smaller places I talked to were all very good about this, though how much of it was my resume by that point I don't know.  But the point is--it's not necessarily going to be as bad as you're expecting, especially after  the beginning when you have a resume and references.

If there's demand, I can write down what my typical workday looks like or something to that effect.  I don't want to go on for too long, and also don't have the time at the moment to try to get something coherent together anyway.

My Blog
Twitter: @ajhicks1992

2020-02-20 05:01:29

@18, I'm currently taking a software engineering course where we are divided into teams and getting the experience of pursuing a semester-long project. Honestly, UML diagrams are just for the visualization of the relationships between classes. If you know the project well and how it's designed, the diagrams don't do much for you. This gave me tons of anxiety at first (you know how this whole CS major as a blind person thing is). After discussing with the professor, we quickly found that there are other things I can contribute to (tech stack, functional requirements, etc). Diagrams only show up for the first half of the class or so, and they don't play that big of a role where you can't get away with never knowing what they look like. My team, for example, is supportive of the circumstances and has offered to just take care of the UML, use-case, (insert plethora of other names) diagrams. Not sure about other universities, but after you're done with the first milestone or two (we're about to finish Sprint 0), it's all conceptual with no visualizations to muddy things up. I'm particularly excited for unit testing, because it's probably the closest thing we'll get to having hands-on experience outside of the programming aspect of the app we're building.
I actually just finished building the presentation for our first sprint in Google Slides. A majority of the work thus far has been requirement specifications and basic reports. As far as the presentation goes, Slides is decent enough to work in where you can add slides and put in the text. Leave the bells and whistles to the other team members. When I had an internship last summer, all PowerPoint presentations were actually created for the team by part of the firm who specialized in graphic design and how slide decks should look (note this is specific to the dynamic of the firm I was working at where they contracted out to clients).
Learning about the different flavors of Agile and how they compare to one another wasn't my cup of tea, but that was weeks 1 and 2 stuff.
Not an expert here, but if this experience is to give at least a small taste of how teamwork is supposed to go, there are plenty of things for you to do besides diagrams and coding. I'm also speaking strictly out of being a student, so @19's post gives far more "real-world" info.

What game will hadi.gsf want to play next?

2020-02-20 05:26:47

@20
Sounds like you're at a more realistic college.  Many colleges will replace the programming with documentation in those courses.  Mine was particularly bad overall, as in you could graduate without having written even 1000 lines of code, the upshot of which was that software engineering was 99% the flavor of whatever strategy we think the real world uses but they really don't this week and 1% the code. As in I complained about how no one was programming on my team and he told me not to worry about having software that actually even ran after trying to get me to conceede that knowing the words is as important as being able to code in the real world.  Fortunately younger me was not nearly so naive as to buy that one.

It's not so much that this stuff goes away as it is that this stuff gets blended together for the org in question and then thrown out as soon as it's doing the software engineering and documenting vs meeting the deadline.  When you aren't in medium-size startup land it does trend more toward the software engineering side, don't get me wrong, but if software engineering in college feels impractical, that would be because what they're teaching probably is.

Also many of those courses have you emulating the entire company, where in practice a lot of the stuff you're doing with respect to requirements definition and such is often the job of other non-programmer people.  If you're for example writing an application to be used by roofers or something, the requirements aren't coming from a programmer, they're coming from someone who understands house construction.  And even after that point it sort of gets sharded into frontend vs backend and stuff.

Getting through college or however else you do it and into the field is really difficult, but of the jobs I can think of that pay more than government benefits and which aren't otherwise subsidized, backend developer is honestly one of the most accessible.  And to be honest I think it may be damn near literally impossible for a blind person to find an alternative that beats the money you make doing it.  Perhaps lawyer or famous musician, but that's all I've got.

My Blog
Twitter: @ajhicks1992

2020-02-20 05:53:25

Fortunately, the courses are laid out to align with what is expected of graduates to know upon being unleashed and sent out into the world. A lot of the upper-level courses allow for students to be highly creative with the projects. I, however, don't have much experience in the web development aspect of programming. One of my team members is, which is great because I am now getting a lot of exposure to things I never got before. This coupled with material learned in the course itself makes for experiences unparalleled in other university settings.
Most of the other undergraduates I've met in the program are pretty active and engaged with the field, which is something I need to kick myself into gear.
It gets a little difficult when my energy is being spent accommodating for courses, but there's always room for budgeting time to learn outside of the classroom.

What game will hadi.gsf want to play next?

2020-02-20 16:42:21

@camlorn: nowadays, vs is quite accessible in terms of nvda, at least 2018.x and 2019.x. I don't know about jaws however, for I didn't touch the crap since version 15.0 and then vs wasn't accessible to any screen reader at all.
in vs 2019, almost everything is accessible, including the winforms designer, the only thing that is, to my knowledge, inaccessible is the wpf designer blender, so if I'd want to make a wpf app, I'd need to write xaml by hand and as it's known that wpf apps are inaccessible by default because it doesn't use the conventional win32 apis for gui, I don't very much care about it, that is, until I begin my project which  requires uwp and such, xaml and wpf.
Conclusions? C# is, in my opinion, a veritable language to work with and learn, it can be used for almost anything along with python nowadays, from desktop to web development with silverlight client side and asp.net server side, robotics wit netduino, mobile apps and apps for linux and mac with mono/xamarin tooling, so, next to python and delphy which have their own .net implementations, c# is my first choice when wanting to make something more serious than a simple sidescroler demo which is never finished anyway.

2020-02-20 16:54:38

@23
Sure.  In fact I even know someone who works on that team.  They've even managed to get the terminal working.

But in the real world you often don't get to say "Okay everyone, let's use VS 2019", and then you get to today's extension of the month if you're unlucky.

I'm old enough to remember 2010 when almost all of VS became inaccessible overnight.  No recourse.  For about 2 years it was unusable.  2008 was more accessible than the current versions; in fact it was damn near perfect.  Then they did a UI rewrite.  Just because they're doing well today doesn't mean they'll be doing well tomorrow.  For something I'll be doing for the next 15 years, being at the whim of an IDE producer who has a history of dropping the ball is not where I want to be.  .net core is separating C# from the IDE some, but as things stand you are still effectively tied to VS for half the stuff you want to do with C#.  It's like stock investment.  You should care about the black swans--the things that seem unlikely but are world-endingly bad.  And since I can name at least 10 technologies that don't have this problem and this topic is about what else should be learned, I stand by my advice.  Don't put yourself at the whim of others' goodwill with regard to accessibility to keep your job and/or career.

Also UWP isn't inaccessible by default to my knowledge.  And I've done WPF once upon a time and that wasn't inaccessible by default either.  If we disregard that I did WPF in the era of inaccessible VS and reverse engineered msbuild to be able to do it outside the IDE, WPF with XAML was actually a very pleasant experience.  WPF and UWP have pretty complete implementations of UIA as far as I know, and a lot of the Windows 10 dialogs and things that you use every day are written in it now.  Winforms does still edge it out with respect to the little things though, i.e. typeahead in listboxes.

My Blog
Twitter: @ajhicks1992

2020-02-20 23:21:38

Am I the only one who hates VSTS, or is it Azure Devops, or some other weird name from MS this week? I just use it as a bug tracker, but I swear that thing has a ton of accessibility issues all on its own. I can use it, but I hate having to wrestle with it.