Some tools to look at: MPS by JetBrains, MetaCase.
The website: https://modeling-languages.com is rather useful. The article: https://scihub.bban.top/https://doi.org/10.1007/s10270-012-0... is also very good starting point.
1,133 karma · joined March 20, 2009
Too much experience. No patience :-(
Some tools to look at: MPS by JetBrains, MetaCase.
The website: https://modeling-languages.com is rather useful. The article: https://scihub.bban.top/https://doi.org/10.1007/s10270-012-0... is also very good starting point.
If you mean ES6 as "modern" JS, then you might want to avoid any material on prototypical nature of "true" JS (which it still is under the hood). Personally I find classes and modules to be very useful.
Although you say you don't care for DOM, CSS and the many frameworks, you might need still need to build a small HTML file to kick start your JS programs. I do all my exploring and learning in Chrome's DevTools console and debugger. JS is not that difficult to learn if you already know a curly brace language (C, C++, C#, Java, etc). Even after years of working with JS, fiddling with DOM still catches me off guard on occasion.
Besides, it's not salary that is the trap, but Lifestyle. Most people's lifestyles expand to consume their increasing salaries, so taking even a reasonable pay-cut means big changes to lifestyle ... and the loss of bragging rights of working for one of the FAANGs.
I think you should read @impendia's comment above. If you are really driven to do relevant research then grad school improves your chances of success.
Out of curiosity I looked up some key papers in my area of MBSE and was able to find them on SciHub. In my mind that amply demonstrates that a non-academic researcher should be able to access many of the recent significant work in at least that area.
The following is based on my decades of industry experience as well as recently completing a PhD in software engineering.
PhD candidates are effectively doing an apprenticeship to become proficient academic researchers. It takes smart, determined individuals anything from 3 to 10 years to graduate with a PhD. Over half who start drop out. Most candidates have one or more supervisors who guide, mentor and co-author papers.
Academic papers need to reference prior work. In most areas the credible references are mostly behind pay-walled repositories for which you either have to pay thousands to access or use your academic institutions access to them. The raises two issues: Firstly, if you are not up to speed with the state-of-the-art, then you can't tell whether your research is yielding paper worthy results. Secondly, you lack suitable referencing of prior-work.
All academically credible journals and conferences have a peer review process. Even experienced researchers get more rejections than acceptances. The big secret is that you need to cite "the right papers" in your background / prior-work section, in order for reviewers to take your submission seriously. It has been said that some reviewers flick to the biblio and if their papers are cited then they are more in favour of an accept decision.
Since you are asking your question on HN, perhaps you already are a member of IEEE or ACM. As a minimum you could peruse some of their publications or even attend a conference in an area that is of interest to you. That will give you a far clearer picture of the standard and areas of current research. Of course, such conferences are an excellent networking opportunity which will allow you to ask your question of people who are currently active in your field of interest.
Your target market is non-technical, then demonstrating your MVP to potential customers should help validate your idea. The feedback will ensure that you build the most important features first and thus start delivering value to your customers. NB: a customer is somebody who pays for your product. Non-technical prospects are more like to focus on their core competencies and not be inclined to copy something that they could simply buy.
Your target market is other developers or IT users, then the chance that your MVP might be copied becomes much higher.
You rarely actually use 64 bit integers. So much of the processing is on strings which use 8 or 16 bits.
Furthermore, your Intel x64 processor still contains the features first introduced with the first IBM PC using the 8088 which in turn was conceptually compatible with the 8008 and 8080. When you try to understand a modern Intel or AMD CPU, you need to be aware of the legacy of 40+ years of backward compatibility. Once you understand the historical decisions, SSE, AVX architectures start making more sense.
After doing my research I often end up buying "bargains" at those types of stores. The hassle is the inconvenience I endure in order to get the loss leaders. Of course, I don't take it personally and politely decline.
It seems to me that the salespersons in those types of stores are minimum wage, untrained staff subjected to draconian managers.
A far more practical approach is to have clearly demarcated, library of reusable domain specific objects which are then assembled as required. Thus the majority of the functionality (the 80%) ends up being written in a sort of embedded domain specific language.
In my experience it depends greatly on what sort of rapport you have with this manager. Can you read his personality? If you barely know the person and think he might be a stickler for detail and protocol, then keep your agenda to positive topics. Focus on your accomplishments and anything you plan that has a direct contribution to the company. Avoid anything negative, it might come back to haunt you. This is the safest path.
If you have reasonable rapport then I would suggest to still stick to being positive, but you could very diplomatically raise any issues that might be negatively impacting the company. What I mean is that instead of saying something like "This open plan office is too noisy and I can't concentrate" say: "Sometimes the office gets quite noisy. Perhaps these conditions could be distracting for some of the staff and impact upon productivity." If you get asked how it affects you then you could say: "I use noise cancelling headphones to minimise the impact and maintain my workflow." Of course that presumes you have such headphones. The above is merely an example of how to recast comments so that you don't look like a complainer. If in doubt, don't.
The next 1:1 will be much easier because you have the experiences from the first one to guide you.
So I have several USB3 external hard drives which I backup to in rotation, more or less the same sequence as we used to do with LTO tapes. On Apple Macs I use TimeMachine and on the Linux servers some custom scripts which basically achieve the same result.
Of course, the backup scripts exclude temporary and other non-essential files. The other key factor is to monitor drive errors and being aware of the MTBF of disk drives and replace them before they become unreliable.
As for the salary comparisons. Look at people at your location and with comparable skills for your reference. Large discrepancies are likely to be due to location and employer factors rather a reflection upon your true value.
Perhaps you could try to be a more strategic. That is, at least get an idea of what your idea client / collaborator would be like. For example, if you are interested in health and fitness, then make contact with SMEs who have gyms, sports stores, provide boot camps, etc. Still on that same track, google to find some forums and directories and find out who might be interested in your area.
Ok, sport and fitness might not be your ideal, but the same principles apply to any general area. I firmly believe that you need to build up an interest in a specific domain/industry in order to find opportunities. The recommendation to scratch your own itch leads us to build stuff for other hackers/programmers and thus end up in a small and over-crowded market.
Personally I found the Nanopass approach much easier to understand because it breaks down the compilation process into lots of simple transformation steps: https://nanopass.org/
There are folks who like to keep things simple, consistent and predictable. They are the ones who rarely pick up another book after they finish their education. They also give up far too easily when confronted with a challenge. Nothing wrong with that, but those choices lead to specific outcomes. No pain, no gain.
In doing the many random things, have you noticed any that you enjoy far more than others? If so, then it might give you an ideas as to what area to focus your learning and development upon.
In my experience, typical business folks are too busy running their business to look beyond their everyday problems. I have lost count the number of times I have come across people using a spreadsheet program as a form of database, e.g. for keeping track of customers and email as a hierarchical filing systems, etc.
Perhaps you should read: "eMyth". The basic message is that most people are working "in" their business and not "on" their business. Which in turn means that only a tiny percentage of business owners would be even thinking about looking for some form of improvement.
Lest I sound too negative. My advice is to get up from the computer and go and talk to small business people, e.g. networking events, chambers of commerce, etc.
Whether you like it or not, Google search, AdWords, etc do capture a huge segment of the potential marketplace. Focusing on quality and relevance instead of trying to game SEO might mitigate some of the extreme swings.
Establishing a strong presence on Facebook, Instagram, Twitter and even here on HN, etc, might reduce your reliance on the GoogleSphere. Have to wonder whether Bing and other lesser used search services might also be of value. Have never looked into those.
Can't help noticing the amount of advertising that some web sites invest in "traditional media". They probably only do it because it works for them.
Although I've been using variations of Unix since Version 5 running on a PDP-11/45, I use an Ubuntu desktop system for everyday use. Simple because it is easy to keep up to date and works well both as a graphical environment and with the terminal. My setup includes 2 LCDs in landscape mode for graphical apps and a third LCD in portrait mode exclusively as a terminal with lots of open tabs.
As for getting started, have a look at https://www.lifewire.com/beginners-guide-to-linux-4090233. Then you just need to frequently refer to the man pages and the many other guides you will find with Google. https://unix.stackexchange.com/ provides reasonably high quality answers to many common and not so common questions.
I recommend that you learn to use terminal commands well. As a pro tip, if you are using 'vi', CTRL-] is the same as ESC. When you get used to using that your speed will increase significantly. Oh, and remap the CAPS-LOCK key to be a CTRL key. You don't want to get RSI in your left pinkie.
Based on my experiences I would suggest dropping the math major and concentrate on graduating with the CS major. Do they have 3 year degree courses or only 4 year? In other words make your goal the MVD (minimal viable degree).
With the degree and 3 years experience you would have better employment prospects than by dropping out and just relying on your experience to date.
If your intellectual interests require it, you can always do some post-graduate study on a part-time basis. Having spent some time teaching and researching in academia, I would suggest doing some in-depth research and talk to people before committing to that path. It can become quite bureaucratic and grants focused and thus more stressful than the majority of jobs in commercial settings.
As already pointed out, you are addressing too broad a market. The best way to address a specific niche is to have worked in that industry. To me that is the only way to know the jargon and the pain points.
You also could note that businesses are often time poor. So if it takes time and effort to incorporate your platform then many prospects will pass.
If I were in your position, I would go back to the pilot "customers", establish what value you bring to the table. Ask for, say 10% of that up front and make it work for them. Once you've accomplished that you have your reference s to back up future sales.
BTW if your product is that good then you could be charging $10000 / year / customer. That is like 1/5 of a single person's salary. I guess you could easily deliver such an improvement in productivity.