Jump to content

Azgoth 2

Member
  • Posts

    317
  • Joined

  • Last visited

Reputation Activity

  1. Like
    Azgoth 2 got a reaction from Aveik in Do I need a number pad for programming?   
    Short answer, no, you don't need one.  Longer answer, you are unlikely to see much benefit from one unless 1) you've always had a numpad, and thus just never learned to type on the number row, 2) you are constantly entering numeric values.  E.g., hard-coding some arrays, manually specifying numeric coefficients in mathematical equations, or doing data-entry type activities.  For that, a numpad tends to speed me up a lot, but only when I'm entering many numbers in succession without needing to jump back to the main keyboard area.
     
    So if you want a TKL, get a TKL.  You can always get a dedicated, perfectly usable USB numpad for pretty cheap if you find yourself really needing one later.  Or, I think there are some keyboard that have a detachable numpad section.
  2. Like
    Azgoth 2 got a reaction from BEARDED CHICKEN in Linux Operating Systems That Would Fit On A CD (700 MB)   
    If you're planning to install from a CD, most distros should offer a CD-friendly .iso image somewhere.  But if you want something to use as a live-only CD:
    SliTaz is one I carry around on a flash drive--it's super lightweight (~50MB for the ISO), but it compresses the root file system at shutdown to save space.  It unzips pretty much entirely into RAM, so it's super snappy.  And unlike DSL, it's still semi-actively under development (but the dev team is small).  It's also designed from the ground up to support installation to a flash drive and use as a live-boot-only distro, but it can be installed and revive some truly ancient hardware.  I've brought a 15-year-old, single-core-CPU laptop back to largely usable life with this distro. Tiny Core is in a similar vein to SliTaz (i.e., extremely lightweight distros), but just chooses to really cut out a LOT of fat around the distro rather than do something like compressing the file system.  But Tiny Core is ultra minimalist, even on their heavier flavors (still a neat project, though), which makes it great for system recovery, embedded devices, and ultra old/low-resource machines. Porteus is less lightweight, but like SliTaz, it's designed to be usable from a live medium like a CD or flash drive without actually installing it to a hard drive.  
    For a more fleshed out desktop experience (that won't be quite as snappy), Lubuntu and Debian (with XFCE or LXDE) will be prett good bets, but if you're doing a live-boot from the CD, they'll be a lot slower than the other three mentioned above, since there's a lot more data and they don't automatically load fully into system memory.
  3. Like
    Azgoth 2 got a reaction from vorticalbox in Python.   
    Your first command might be looking for the wrong package.  On Debian-based distros, at least, the package name for pip is python3-pip--not sure if it's the same in the CentOS repos, but look for something like that.  Also make sure you don't have a bash alias that points "pip3" at the Python 2.6 pip--it seems like that might be happening since when you type "pip3 install requests" it says it's looking in the Python 2.6 directories.
     
    Also, after installing, run "pip install -U pip" to upgrade pip to the newest version (per the error message)--just to make sure you're using the newest version.  You can double-check what version of Python your pip install is configured for with "pip -V" (my output is pip 9.0.1 from /home/localuser/.local/lib/python3.5/site-packages (python 3.5), which tells me it's Python 3.5).  You can also try running pip explicitly through Python with "python3 -m pip [pip commands/options]".  That'll use your PATH variable to find the Python 3 executable, which should know where its corresponding version of pip is stored if you've installed it.
  4. Agree
    Azgoth 2 reacted to BeyondOGTD in What coding language should I learn?   
    C++ is probably above the skill level of someone who doesn't have any coding experience. I would recommend Python followed by Java to learn basic coding mechanics etc. To get into the world of C++ and game development, I would recommend you start off with something like Unreal Engine that uses blueprints to help you visualize C++. This is also the point where you'd start to learn how to do things in C++. Good luck!
  5. Agree
    Azgoth 2 got a reaction from documnt in Need advice for progressing with programming   
    The single best way, in my experience, to learn how to use any programming language is a project-based approach.  Pick or find a thing you want to do--maybe program a game, or a Twitter bot, a generative art maker, or some quality-of-life programs you expect to use often--and then google the hell out of how to do the different parts of it.  The fact that you're enrolled in a course right now might give you some natural projects/things to do, but there are a bunch of websites out there that collect programming-oriented problems (Project Euler for computational mathematics; Rosalind for computational bioinformatics/genetics; Kaggle for machine learning; etc etc) if you want something different (and something that a lot of people have already done, so there should be plenty of resources available).  The downside to a do-it-yourself project-based approach, though, is that you'll tend to learn a few parts of the language very deeply, but you may never pick up on the breadth of what can be done with the language.  A more formal class will tend to, in my experience, give you the inverse, where you get a good sampling of everything but don't necessarily get to dive super deep into any one thing during the course itself.
     
    Usually, if you can find some sort of official documentation for your language (e.g., Python's documentation, which is excellent), that's a good reference to always keep on hand.  From time to time you should skim through parts of the documentation you're not familiar with--you may not use all the features of a language, but you might learn about something you wouldn't come across otherwise.
  6. Agree
    Azgoth 2 reacted to Akolyte in What do I need to know   
    Heard C# with The Unity Engine were good for desktop game development.  Alternatively, you could write an engine but in all honesty it would be easier just to use Unity.  There are some great free courses on C# and Unity.  There are also Slacks, Discords and Forums that have great people who are good at C#, so go around and find some of these sites and meet and chat with people who are good at C#.  
     
    You could also write it in Javascript, but my advice would be C#.  It's way more structural and organized I find, Javacript lets me do too many dumb things.  Hope this helps, you need to find out this stuff on your own for the most part by testing out and experimenting.  If you don't have a knack for programming then don't rush. You should find something else to make money. 
     
    I was chatting the other day to my mate who is 17 and has made a social media marketing business which is pretty decent all on his own.  If he can do it, you can do it.  Just work hard and put the effort in and you'll get far.  Good luck. 
  7. Agree
    Azgoth 2 got a reaction from klutch in Need advice for progressing with programming   
    The single best way, in my experience, to learn how to use any programming language is a project-based approach.  Pick or find a thing you want to do--maybe program a game, or a Twitter bot, a generative art maker, or some quality-of-life programs you expect to use often--and then google the hell out of how to do the different parts of it.  The fact that you're enrolled in a course right now might give you some natural projects/things to do, but there are a bunch of websites out there that collect programming-oriented problems (Project Euler for computational mathematics; Rosalind for computational bioinformatics/genetics; Kaggle for machine learning; etc etc) if you want something different (and something that a lot of people have already done, so there should be plenty of resources available).  The downside to a do-it-yourself project-based approach, though, is that you'll tend to learn a few parts of the language very deeply, but you may never pick up on the breadth of what can be done with the language.  A more formal class will tend to, in my experience, give you the inverse, where you get a good sampling of everything but don't necessarily get to dive super deep into any one thing during the course itself.
     
    Usually, if you can find some sort of official documentation for your language (e.g., Python's documentation, which is excellent), that's a good reference to always keep on hand.  From time to time you should skim through parts of the documentation you're not familiar with--you may not use all the features of a language, but you might learn about something you wouldn't come across otherwise.
  8. Agree
    Azgoth 2 got a reaction from SamuelJE in Need advice for progressing with programming   
    The single best way, in my experience, to learn how to use any programming language is a project-based approach.  Pick or find a thing you want to do--maybe program a game, or a Twitter bot, a generative art maker, or some quality-of-life programs you expect to use often--and then google the hell out of how to do the different parts of it.  The fact that you're enrolled in a course right now might give you some natural projects/things to do, but there are a bunch of websites out there that collect programming-oriented problems (Project Euler for computational mathematics; Rosalind for computational bioinformatics/genetics; Kaggle for machine learning; etc etc) if you want something different (and something that a lot of people have already done, so there should be plenty of resources available).  The downside to a do-it-yourself project-based approach, though, is that you'll tend to learn a few parts of the language very deeply, but you may never pick up on the breadth of what can be done with the language.  A more formal class will tend to, in my experience, give you the inverse, where you get a good sampling of everything but don't necessarily get to dive super deep into any one thing during the course itself.
     
    Usually, if you can find some sort of official documentation for your language (e.g., Python's documentation, which is excellent), that's a good reference to always keep on hand.  From time to time you should skim through parts of the documentation you're not familiar with--you may not use all the features of a language, but you might learn about something you wouldn't come across otherwise.
  9. Like
    Azgoth 2 got a reaction from Yamoto42 in Getting started w/ python recommendations pls!   
    Since you're interested in GPU-accelerated math and neural nets, as mentioned, you won't be able to get anything serious done on a Pi due to its very low specs (at least in terms of building large or complex models), but you can get started with the basics.  That said: for straight GPU-accelerated math, look into Tensorflow and Theano.  They're both great libraries for GPU math, each with pros and cons that you'll want to read up on a bit.  In short, though: Theano is older and more mature, but Tensorflow is developed by Google and is rapidly taking over other GPU-accelerated math libraries/frameworks.  Tensorflow is also incompatible with Python 3.6 (unless you install it from source and manually compile it), which is frustrating.  There's also PyTorch, which is still in the early release stages I believe.  Despite the name, I don't think it has any relation to Lua's venerable Torch framework for deep learning--it seems to be developed from the ground up for Python.  As a word of warning, I don't think any of these libraries have very good support for OpenCL--they're all heavily CUDA_oriented, so you'll need an Nvidia GPU to get any real use out of the GPU acceleration.  (But, I believe they can all run in CPU mode, though that'll be horrendously slow and basically make non-trivial recurrent neural nets impossible to use).
     
    For a neural-net specific library, look into Keras.  It's basically a nice frontend for Theano/Tensorflow that obviates the need for you to actually write the various layers of your network by hand.
     
    You'll also want to look into the Scipy stack of libraries: numpy, scipy, matplotlib, and pandas, in particular.  They're absolutely indispensible for doiing any data work in Python.  Just make sure you're either installing them in a *nix environment or you grab the numpy and scipy .whl files from Chris Gohlke's site--they require Fortran and C compilers, plus a bunch of linear algebra and other math libraries that are a fucking nightmare to install on Windows (and which are overwhelmingly written specifically for *nix environemnts).
  10. Informative
    Azgoth 2 got a reaction from Nicnac in Getting started w/ python recommendations pls!   
    Since you're interested in GPU-accelerated math and neural nets, as mentioned, you won't be able to get anything serious done on a Pi due to its very low specs (at least in terms of building large or complex models), but you can get started with the basics.  That said: for straight GPU-accelerated math, look into Tensorflow and Theano.  They're both great libraries for GPU math, each with pros and cons that you'll want to read up on a bit.  In short, though: Theano is older and more mature, but Tensorflow is developed by Google and is rapidly taking over other GPU-accelerated math libraries/frameworks.  Tensorflow is also incompatible with Python 3.6 (unless you install it from source and manually compile it), which is frustrating.  There's also PyTorch, which is still in the early release stages I believe.  Despite the name, I don't think it has any relation to Lua's venerable Torch framework for deep learning--it seems to be developed from the ground up for Python.  As a word of warning, I don't think any of these libraries have very good support for OpenCL--they're all heavily CUDA_oriented, so you'll need an Nvidia GPU to get any real use out of the GPU acceleration.  (But, I believe they can all run in CPU mode, though that'll be horrendously slow and basically make non-trivial recurrent neural nets impossible to use).
     
    For a neural-net specific library, look into Keras.  It's basically a nice frontend for Theano/Tensorflow that obviates the need for you to actually write the various layers of your network by hand.
     
    You'll also want to look into the Scipy stack of libraries: numpy, scipy, matplotlib, and pandas, in particular.  They're absolutely indispensible for doiing any data work in Python.  Just make sure you're either installing them in a *nix environment or you grab the numpy and scipy .whl files from Chris Gohlke's site--they require Fortran and C compilers, plus a bunch of linear algebra and other math libraries that are a fucking nightmare to install on Windows (and which are overwhelmingly written specifically for *nix environemnts).
  11. Like
    Azgoth 2 got a reaction from Mira Yurizaki in Getting started w/ python recommendations pls!   
    Since you're interested in GPU-accelerated math and neural nets, as mentioned, you won't be able to get anything serious done on a Pi due to its very low specs (at least in terms of building large or complex models), but you can get started with the basics.  That said: for straight GPU-accelerated math, look into Tensorflow and Theano.  They're both great libraries for GPU math, each with pros and cons that you'll want to read up on a bit.  In short, though: Theano is older and more mature, but Tensorflow is developed by Google and is rapidly taking over other GPU-accelerated math libraries/frameworks.  Tensorflow is also incompatible with Python 3.6 (unless you install it from source and manually compile it), which is frustrating.  There's also PyTorch, which is still in the early release stages I believe.  Despite the name, I don't think it has any relation to Lua's venerable Torch framework for deep learning--it seems to be developed from the ground up for Python.  As a word of warning, I don't think any of these libraries have very good support for OpenCL--they're all heavily CUDA_oriented, so you'll need an Nvidia GPU to get any real use out of the GPU acceleration.  (But, I believe they can all run in CPU mode, though that'll be horrendously slow and basically make non-trivial recurrent neural nets impossible to use).
     
    For a neural-net specific library, look into Keras.  It's basically a nice frontend for Theano/Tensorflow that obviates the need for you to actually write the various layers of your network by hand.
     
    You'll also want to look into the Scipy stack of libraries: numpy, scipy, matplotlib, and pandas, in particular.  They're absolutely indispensible for doiing any data work in Python.  Just make sure you're either installing them in a *nix environment or you grab the numpy and scipy .whl files from Chris Gohlke's site--they require Fortran and C compilers, plus a bunch of linear algebra and other math libraries that are a fucking nightmare to install on Windows (and which are overwhelmingly written specifically for *nix environemnts).
  12. Informative
    Azgoth 2 got a reaction from babadoctor in Sed command not working   
    Use the -E flag to use extended regexp syntax, and get rid of the backslashes around your parentheses.  Then use special \1 escape character in place of a replacement string to print out the found match for the capturing parentheses.  (\1-\9 refer to matched sub-strings; with capturing parentheses they can refer to what the parentheses found)
     
    sed -E 's_https://www.twitch.tv/videos/(.*)"_\1_'
  13. Informative
    Azgoth 2 got a reaction from babadoctor in Sed command not working   
    Ah, i see what's happening.  I was testing this on a single random twitch.tv video URL--in your text it's replacing the url with just what comes after the /video/ part.  Sed is really meant for manipulating text--for just matching substrings, you'll want (g)awk.
     
    gawk 'match($0, /https:\/\/www\.twitch\.tv\/videos\/([^\"]*)\",/, arr) {print arr[1]}' output Regular expressions in (g)awk are surrounded by / characters, s there's a lot of ugly escaping.  Quotation marks are also escaped because they normally represent literal string delimiters.
  14. Informative
    Azgoth 2 got a reaction from babadoctor in Sed command not working   
    As long as you don't have multiple matches per line to worry about that should work--it'll print each match to a new line in stdout, based on my quick tests.  Admittedly I don't use awk/gawk much so I wasn't aware it had issues with multiple matches per line until I looked it up just now.  Frankly I'm starting to lean towards just writing a script in Python or whatever language you're comfortable with to do the matching for you:
    #!/usr/bin/python3 import re f = open("/path/to/file", "r").read() for i in re.findall('https://www\.twitch\.tv/videos/(.*?)",', f): print(i) # or for multiple files in a single directory import os import re files = [i.path for i in os.scandir("/path/to/files")] for F in files: f = open(F, "r").read() for i in re.findall('https://www\.twitch\.tv/videos/(.*?)",', f): print(i) That has no issue matching across multiple lines or multiple matches within a line, again based on some of my quick and hacky testing.
  15. Informative
    Azgoth 2 got a reaction from TAHIRMIA in Should I use Tor?   
    There is if you only allow certain domains, and leave others blocked, though.  It lets you block on a domain basis, so I you can have some things on a page blocked while other things are allowed.  Example: I have linustechtips.com added to my whitelist, but not google-analytics.com or googletagservices.com, all of which try to run scripts here on the LTT forums.  It obviously won't do any good if you permanently whitelist everything on every site you visit, but the same goes for literally any blocking/security service.  And I always have cross-site scripting and possible clickjacking blocked regardless of domain.
     
    Unless I'm thinking of something else, entrance and exit nodes can be set up by malicious agents (e.g. NSA/FBI/etc), who can then monitor traffic through them.  But that's why you still use HTTPS when connecting through Tor--to make sure your data is encrypted en route to and out of the network, making it harder for a compromised entry/exit node to become a problem for you.  Unless there was some development I missed, I don't believe the core security of Tor is known to be compromised.  (though if it is I would love to see more details, since that seems like a pretty major thing)
  16. Informative
    Azgoth 2 got a reaction from CookieMaster in Is it possible?   
    Reading PDFs is very possible, but it can be a pain in the ass due to there being a range of different PDF encodings, and some actually requiring Acrobat to decode (otherwise they are unreadable).
     
    Pulling information out of the the PDF falls into the realm of Information Retrieval and might be, far and away, the most difficult step depending on the PDFs you're dealing with.  If you're dealing with a finite, known set of possible inputs, you can just write rules that explicitly deal with each one.  E.g., if you're dealing only with invoices, and you know the invoices can only be formatted one of several ways, you can just check what the layout is and go to the appropriate processing steps.  If you're dealing with more general and unstructured data--e.g., raw text--then you'll need to delve deep into information retrieval and possible natural language processing/understanding.  And things can get messy and complicated there if you're building your own IR engine, and you'll need to do a lot of quality assurance/testing even if you're borrowing someone else's to make sure it works in your specific circumstances.
     
    Drafting and sending e-mails is pretty straightforwards.  That's just text formatting.  You could have some form letters and plop the relevant information from the PDFs into the letters.  As for sending the e-mails, I don't personally know how you'd do that, but that's absolutely a thing you can do, and it's probably not all that difficult either.
  17. Agree
    Azgoth 2 reacted to fizzlesticks in Python Add to Object Attribute   
    A Counter would be better.
  18. Informative
    Azgoth 2 got a reaction from KhalFuego in Can someone help me get into programming?   
    Then it depends on the platform, but both Android and iOS have their own preferred and best-supported languages.  I believe for Android it's still Java, and for iOS it's Swift, but you should do some research to find out if people who do mobile development have different recommendations.  (I don't do anything mobile, so I'm speaking outside my wheelhouse here)
  19. Agree
    Azgoth 2 got a reaction from shadowbyte in Ubuntu on USB   
    If you have a full installation on the thumb drive, yes, you definitely can.  You'll have to download it from Google and run the installer, though, since it's not available in the Ubuntu repositories.
     
    If you're doing a full install on a flash drive, though, Ubuntu is one of the worse distros for that.  It's very resource-heavy and takes up a lot of space, so it'll run pretty slow compared to other, more slimmed down distros like Debian or (if you know what you're doing) Arch.  But if it's working for you as it is, then I wouldn't worry about it--just be aware that you'll see a slowdown from accessing and loading data over comparatively very slow USB interface versus the hard drive connector.
  20. Agree
    Azgoth 2 got a reaction from dvdmuckle in Why is Ubuntu so slow?   
    Ubuntu is not one of the lighter distros--it's probably among the more resource-intensive ones.  (The tradeoff is that it's very user-friendly, where many lighter distros are less so).  The default desktop environment, Unity, as well as GNOME, are both fairly resource-heavy as well.  If you have a lower-spec machine, this might cause problems.  Of course, you can also sometimes run into issues with performance if you take a distro and immediately switch to one of the non-default desktop environments.  Like @dvdmuckle said, if you know you're going to use GNOME, install the Ubuntu GNOME edition so you don't have all the Unity data clogging up your system.
     
    If that's still running slow, you should look into a lighter distro.  Lubuntu and Xubuntu are two of the widely used lightweight desktop distros, and are both just Ubuntu with the default programs swapped for something else (at least as far as matters to the user).  Mint is another good one--it's less lightweight than L/Xubuntu, but I personally like it a bit more than the various flavors of Ubuntu.  Debian, if you're a little more Linux-savvy, would be another option, since it's a bit more stripped down than either Ubuntu (and its flavors) or Mint.  Especially if you get the XFCE or LXDE image.
  21. Like
    Azgoth 2 got a reaction from Schyken in Portable Linux   
    The biggest issue you'll run into with a portable install is speed.  USB is a lot slower than a hardware install, so you'll want a distro that specifically addresses this issue by being super duper tiny (way lighter than even Lubuntu) and/or loading as much of itself into memory as possible (so it doesn't have to access the drive very much).
     
    In general, any of the ultra lightweight Linux distros will be what you want for this.  I'll point you specifically at SliTaz--it's a pretty neat distro, designed from the ground up to be compatible with portable USB drive installations.  It's also super light and loads entirely into memory (sort of--I've run into occasional issues where this doesn't quite seem to work as it should, but all of the core OS stuff definitely loads up properly).  It doesn't have a lot of software availability, but it's still enough to do basic tasks like editing some simple documents (last I checked, Libre Office wasn't ported to it yet, but Abi Word and GNUmeric are).  It can compress its file system before saving to minimize write cycles to the flash drive (EMMC memory has far fewer write cycles than SSD storage--part of why it's so cheap).  SliTaz isn't the most user friendly--it has some quirks you have to learn to deal with, but if you've got a decent bit of Linux knowledge under your belt and aren't afraid to muck with the occasional config file, you should be fine.  I have a 32GB flash drive with SliTaz on it that I carry with me for those rare times when it's the perfect thing for whatever I'm doing.
     
    Another option might be Puppy Linux.  I haven't used it so I can't speak to it directly, but people tend to like it a lot and say very good things about it.  And it's designed to be a super lightweight distro, so it could be a decent candidate for a flash drive install.
     
    Tiny Core would be the last one t look at.  It's super lightweight--you can get a 9MB ISO image, or a ~100MB one with a lot more software pre-installed.  Unlike SliTaz, it's not designed for portable installations, but it's so damn small it can be used like one.  Tiny Core is...odd, in a few ways, and I don't quite recommend it as a general-purpose desktop distro.  But if you just need to occasionally spin up a Linux USB on some computer, it should be fine.
  22. Like
    Azgoth 2 got a reaction from LtStaffel in Python Program Not Working Correctly   
    Like @fizzlesticks said, use the BeautifulSoup library.  Something like this:
     
    import bs4 from urllib.requests import urlopen page = bs4.BeautifulSoup(urlopen(whatever), "html.parser") links = page.find_all("a") links = [i['href'] for i in links] Something like that should get you a list of all links on the page.
  23. Informative
    Azgoth 2 got a reaction from steezemageeze in Help with distro for laptop older than me   
    DSL has been abandoned for years now--latest release was four years ago, and I don't think there's been much development done on it since.  I personally wouldn't recommend it, though it might run on those specs.
     
    Puppy Linux, though, would be a good one to try, especially if you swap out the desktop environment for something like plain Openbox or i3, but I worry that the really low RAM on the machine might still be an issue.
     
    Four other ones to look into, though:
    SliTaz, which is designed to be ultra low-resource use, and will load entirely into memory for maximum speed.  But given your 128MB RAM limit, this will be a tight squeeze.  You may be able to get far enough under that if you pull one of the more minimalist spins of the distro and, again, switch to one of the ultra lightweight desktop environments. Tiny Core, which is...tiny.  The .iso is about 15MB, but it comes with basically nothing pre-installed.  (There's a 100MB .iso with more stuff, though, which you might want to try for usability's sake before jumping to the smaller one).  This actually spun off of Damn Small Linux a while back. Nano Linux, which is like Tiny Core, but packs more stuff in and is designed to be more usable. A non-Linux one this time: Kolibri OS.  This is a super neat project, since it's an OS written entirely in assembly.  You can probably run it on a potato.  It might run really snappily even on your setup, but beware that you'll have extremely limited software options compared to anything else on this list.  And it might not be at all intuitive or user-friendly at first, since the design paradigm is pretty different.
  24. Informative
    Azgoth 2 reacted to MoVo in Which language to move onto next?   
    As @Azgoth 2 mentioned, if you're aiming for a career Java, C# or C++ is probably the best choice. You can use Java(as well as C#) to create Android Apps. If you want to go with iOS Apps you have to learn Swift (or Objective-C). Java C# and C++ have a very similar syntax with some language-specific additions (& var, await, list goes on..) Python has a rather "special" syntax compared to the ones mentioned before, but if you're Diggin deep into python you can actually build very powerful applications (sublime text) or you can use it for machine learning and data analysis (SkLearn, TensorFlow...). 
    If you want to build websites PHP once was the absolute favorite of everybody, currently it seems like everybody is going with the Nodejs (JavaScript on the server side), which you can actually use to build desktop applications, and mongodb. A lot of companies are also using Ruby (on Rails) for web applications. RoR is very easy to learn and incredibly powerful, it's already around for a while, but it still does its job pretty good (In fact Twitter was initially built with Ruby On Rails, but as far is I know they are now using Scala).
    As a summary you could say: The language you should choose depends on what you want to build. 
    Here is a small overview over languages I use(d) and gained some experience
    Web Applications
    Ruby (on Rails) (Large collection of libraries, making it easy to built powerful webapps) Nodejs (Large community, great online learning resources and packages for building powerful apps) PHP (Used by a lot of popular websites, easy to write ) Python (Simple language, but very powerful. There are a lot of tutorials, especially for beginners) Desktop Applications
    Nodejs (electron) C# C++ Python Java Mobile Applications
    Java (Android) C# (Android with Xamarin Framework or Windows phone, if there is anybody using it) C++ (Android NDK) Swift (iOS *mac required) Objective-C (iOS *mac required) HTML/CSS/JavaScript (Cordova or Phonegap for cross platform apps, nice but not as good as native platform apps) Universal
    C#, you can also use it for building web apps with ASP.NET (but I find that very confusing and as far as I know its restricted to Windows Servers)  C++ (Cross Platform) Python (not for mobile, Cross Platform)
  25. Agree
    Azgoth 2 got a reaction from vorticalbox in Python Tips?   
    In addition to the Unix philosophy as posted by @Name Taken (which is just a good philosophy in general to use as a starting point), there's the Zen of Python, which is more specific to Python itself and reflects a lot of the ethos and mindset of the language.  Open up your Python interpreter and type "import this" to read it.  Or find PEP 20.  Or I'll just paste it here:
     
     
    One of the more important points in there is There should one one--and preferably only one--obvious way to do it.  That's kind of the unofficial/semi-official motto of Python (in direct response and contrast to Perl's "There's more than one way to do it").  You can think of this as meaning "the simplest and most obvious solution that gets the job done is usually the best one"--more complicated solutions often reach the point of diminishing returns, are less readable, and a bit less re-usable.  Use Python built-in functions when you can, avoid harder to read code if it only gets you marginal performance boosts or if performance isn't critical, etc.
×