Favorite IDEs / Editors

Crystallas

Three if by air
Staff member
Donator
Joined:
Jun 25, 2010
Posts:
20,010
Liked Posts:
9,558
Location:
Next to the beef gristle mill
My favorite teams
  1. Chicago Bulls
Vivaldo(recently got pretty good), NetBeans, KiCad(migrated from a few other CAD apps in 2016 or so), and Atom(more recent change) make up my basic stack, in no particular order. If I need to edit a large file on the fly, I just use vim because it doesn't load anything extra and wont add any garbage anywhere, uses almost no resources, and I've been using Vi since the 80s, so habit. IntelliJ is so good now, used to be a slug, but now you can just load a plugin and skip so much BS.
 

Broc

well baked
Donator
Joined:
Aug 20, 2012
Posts:
6,575
Liked Posts:
9,659
My question for @Burque would be what's your goal.... Are you just looking to learn how to code a simple web page? Do you want to make more complex web apps? Mobile apps? Command line console apps? Windows apps? Learning it to get hired for a specific role or job at a specific company?

My advice would vary depending on what specifically you're aiming for here...

For instance, learning HTML and CSS is the easiest form of "programming" you can start with but won't be much help if you're ultimately trying to learn how to program for some entry level software development job with company X that will be asking you .NET questions. Likewise, teaching yourself C# isn't going to be very helpful if you're applying for a front end dev position.

Personally I'd advise against front end as a job route (no offense to the guys here that do it). It's a valuable skill set to have no doubt, and it's fun when working on your own personal projects like making your own website or whatever but as an actual job I fucking hated it. There's a billion frameworks to pick from with new ones released every other day to learn and having to deal with annoying clients that want you to work on their ecosystem of custom web apps that were developed in 2002 to work specifically on IE8 is a literal nightmare.

So putting front end aside for the moment, my recommendation would be to simply go onto Youtube and search for "object oriented programming" and a find a lecture series from someone you like listening to and who explains things in a way you can understand.. once you learn the basic concepts (objects, classes, methods, data structures, inheritance, encapsulation, etc) it makes the rest much easier since all the modern languages generally share these same core concepts.

From there it's just a matter of reading thru the documentation for the specific language you're going to be using and learning the syntax specifics but that's becoming less of an issue these days as most IDE's will do a lot of the heavy lifting for you between the auto filling/correcting and generating boiler plate for you.

Back when I was in college they had us start by learning Java but I'd recommend just starting with C# since they're similar enough where you could pick up Java very easily if you need to. But like I said it all depends on what you're looking to to. If you're looking to make Android apps then you'd want to learn Java. If you want to work for a company that makes Windows desktop applications then you'd want to learn C#. If you want to make video games using the Unity engine then learn C#. You want to make video games using the Unreal Engine you'll need to learn C++. If you want to be a backend nerd working with databases and shit then you'll need to learn a little of everything.

Choose wisely lol.
 

Chief Walking Stick

CCS Donator
Donator
Joined:
May 12, 2010
Posts:
47,886
Liked Posts:
26,375
Fucking loser dweebs talking about nerd talk on Valentine's day.

Get a brane, virgins!
 

nvanprooyen

Moderator
Staff member
Donator
CCS Hall of Fame '19
Joined:
Apr 4, 2011
Posts:
18,757
Liked Posts:
27,291
Location:
Volusia County, FL
My favorite teams
  1. Chicago Bears
I'd agree with almost everything that @Broc said, and please take my advice only if you're interested in web applications.

The only thing I'd note is around the object-oriented programming part. I think a lot of that theoretical stuff can make sense when using abstract examples, but it's a whole different beast when you're actually writing something, trying to figure out your class structure, what methods should go where for best organization, overusing inheritance and things getting fucked up down the line, etc. The only way around that IMO is to simply write a lot of code without training wheels (e.g. a tutorial telling you exactly what to do), and then write some more. In the beginning, this is fine, but I think the best way is to try and apply what you've learned on some project that you've picked.
 

RacerX

Silicon Valley CA Bears H
Joined:
Aug 21, 2012
Posts:
10,029
Liked Posts:
8,601
Location:
Silicon Valley, CA
Da Fuq is any of this gibberish about?

Tech-talk is kryptonite to us Boomers. So how about that Mitch Trubisky?
 

Burque

Huevos Rancheros
Joined:
Mar 11, 2015
Posts:
16,034
Liked Posts:
9,512
@Broc @nvanprooyen

To expound, I have an idea for an app that I do not want to get into details on, and after googling around the internet it seems like there are a few routes to take.

1. Hire someone (I don't want to do that yet)
2. Use some pre made platform (I am probably misunderstanding this option) that you pay a monthly fee to.
3. Learn to code it yourself.

I have computer knowledge, was in the field for a while, but more on the networking and hardware side of things like twenty years ago. so I do not have much coding knowledge and any that I may have had is certainly obsolete and long since buried in some never used dusty file in my brain.

So to answer the question specifically, I would like to code an Android app. or at least learn enough to know that I don't want to do it and hiring/bringing someone in on the project is a smarter move.

Ultimately it may be a bad idea for an app, but until I get far enough down the road to see if it is possible to make it work/have people use it and see if they like it I am not sure I want to spend much in the way of resources other than time.

Also, is there a way that with apps that you protect your intellectual property or ideas?
 

nvanprooyen

Moderator
Staff member
Donator
CCS Hall of Fame '19
Joined:
Apr 4, 2011
Posts:
18,757
Liked Posts:
27,291
Location:
Volusia County, FL
My favorite teams
  1. Chicago Bears
@Broc @nvanprooyen

To expound, I have an idea for an app that I do not want to get into details on, and after googling around the internet it seems like there are a few routes to take.

1. Hire someone (I don't want to do that yet)
2. Use some pre made platform (I am probably misunderstanding this option) that you pay a monthly fee to.
3. Learn to code it yourself.

I have computer knowledge, was in the field for a while, but more on the networking and hardware side of things like twenty years ago. so I do not have much coding knowledge and any that I may have had is certainly obsolete and long since buried in some never used dusty file in my brain.

So to answer the question specifically, I would like to code an Android app. or at least learn enough to know that I don't want to do it and hiring/bringing someone in on the project is a smarter move.

Ultimately it may be a bad idea for an app, but until I get far enough down the road to see if it is possible to make it work/have people use it and see if they like it I am not sure I want to spend much in the way of resources other than time.

Also, is there a way that with apps that you protect your intellectual property or ideas?

I don't know a ton about mobile apps, but I probably know enough to get you pointed in the right direction. @Broc will likely be able to add a lot more to this.

The first question I'd ask, is does it really need to be a native app? Or can the same functionality be accomplished with a web application? IMHO a lot of things created as apps that require install, shouldn't be apps at all.

As far as the tech stack goes, Java is the primary language for Android applications. But, I think C# is a much better language and there is a solution called Xamarin that allows you to deploy C# applications to both Android and iOS:


Note that I've only played with this, not sure how good it is.

If you want to learn C#, the best tutorials I've found are on Pluralsight:


Not free, but the quality is very good.
 

Burque

Huevos Rancheros
Joined:
Mar 11, 2015
Posts:
16,034
Liked Posts:
9,512
I don't know a ton about mobile apps, but I probably know enough to get you pointed in the right direction. @Broc will likely be able to add a lot more to this.

The first question I'd ask, is does it really need to be a native app? Or can the same functionality be accomplished with a web application? IMHO a lot of things created as apps that require install, shouldn't be apps at all.

As far as the tech stack goes, Java is the primary language for Android applications. But, I think C# is a much better language and there is a solution called Xamarin that allows you to deploy C# applications to both Android and iOS:


Note that I've only played with this, not sure how good it is.

If you want to learn C#, the best tutorials I've found are on Pluralsight:


Not free, but the quality is very good.
Sweet. Yes this is something I would think could be very useful on phones, tablets and computers. So perhaps looking at it from a wider lense is a smart starting point rather than just focusing on Android and if successful trying to flip it to other os'
 

Broc

well baked
Donator
Joined:
Aug 20, 2012
Posts:
6,575
Liked Posts:
9,659
@Burque - gotcha... ok so in this case my advice would be to learn to code the app yourself.

Reasons being...

1) You're not going to learn anything paying someone else to make it and if it's a good idea they might develop a shit version for you while they steal the idea and make a better version for themselves.

2) If you pay someone else to write it and they quit halfway or write sloppy code giving it to someone else will be a complete pain in the ass and end up costing you more time and money in the end as the new developer has to go thru their spaghetti code and figure out wtf is going on or just scrap it and completely re-write it.

3) You'll have to continue paying them to support and update your app as users report bugs and Google rolls out new Android updates with new features to support or add to your app.

4) The subscription app making stuff is also a waste IMO. Personally I don't like the idea of having to pay a monthly fee for something that will be generating little if any revenue and then being locked into their ecosystem going forward. Plus I like being able to customize every little detail completely to my liking.

Coding is like any other skill in that the only way to get good is thru live reps. So IMO giving yourself a project to work on and doing it yourself is by far the best choice if you're looking to get into programming. If you make it yourself you'll spend a ton of time writing, researching solutions to roadblocks you encounter, and re-writing as you debug and optimize it. You'll be much better off in the end doing it yourself and set yourself up to branch out into making other types of apps that much easier.

As for Android specifically.. Android's OS is built on Java and is pretty simple to learn just by reading thru Google developer documentation. Like @nvanprooyen mentioned you can write mobile apps in c# now a days but unless you're dead set on having it on be a multi-platform app to support iOS and stuff it's not really necessary. If you're cool with just making an app for Android devices stick with writing it all in native Android (Java) as IMO it's easier to learn starting from scratch. You can always port it over to C# later once you've learned the basics.

Also, while I agree with nvan in that you can typically accomplish the same thing with a web app IMO native apps are better on mobile devices. This is more of a personal preference than anything (in that I like the speed & cleaner look of a native app instead of running the app on a mobile browser which just doesn't look as good IMO) but also technical in that developing for multiple browsers types can be a pain in the ass and you lose a lot of built in functionality that Android offers out of the box for stuff like snazzy animations/transition effects/ect that will take way longer to duplicate with a web app.

But then again if this app is something you'd see yourself using from your computer a lot then perhaps a web app would be a better choice. But if it's something you'd be mainly using on a phone or tablet then IMO native app is the way to go.
 

nvanprooyen

Moderator
Staff member
Donator
CCS Hall of Fame '19
Joined:
Apr 4, 2011
Posts:
18,757
Liked Posts:
27,291
Location:
Volusia County, FL
My favorite teams
  1. Chicago Bears
Just to pile on to what @Broc said about the native vs. web app thing a little more, beyond performance, there are some things that you can do w/ native that you can't do with a web app. Specifically taking advantage of the device's features like the camera, accelerometer, GPS, etc. If these things are integral for what you're trying to do then definitely go the native route.

The biggest case I could make for a web app is you immediately have a footprint on any device that has a browser - mobile, desktop, whatever. And you only have one code base to maintain. But responsive web design (e.g. making shit look good on all devices, browsers, etc) is a pain in the ass sometimes too. And you also don't have to get over the hurdle of someone installing something.

The business model comes into play too. If your model is selling a premium app that costs $1.99 (or whatever) to install, then obviously native. If it's ad-supported, or a SaaS model then you could go either way,
 

Ares

CCS Hall of Fame
Donator
CCS Hall of Fame '19
Joined:
Aug 21, 2012
Posts:
42,346
Liked Posts:
35,065
@Burque just outsource the programming to India.

From what my Senior Leadership says you can pretty much just think about what you want and an army of Indian programmers will bang it out in 10% of the time for 0.1% of the price and it will be totally perfect.

/sarcasm
 

clonetrooper264

Retired Bandwagon Mod
Staff member
Donator
Joined:
Apr 11, 2009
Posts:
23,600
Liked Posts:
7,413
My favorite teams
  1. Chicago Cubs
  1. Chicago Bulls
  2. Golden State Warriors
  1. Chicago Bears
  1. Chicago Blackhawks
@Burque just outsource the programming to India.

From what my Senior Leadership says you can pretty much just think about what you want and an army of Indian programmers will bang it out in 10% of the time for 0.1% of the price and it will be totally perfect.

/sarcasm
But yet exactly how some companies think...
 

Crystallas

Three if by air
Staff member
Donator
Joined:
Jun 25, 2010
Posts:
20,010
Liked Posts:
9,558
Location:
Next to the beef gristle mill
My favorite teams
  1. Chicago Bulls
@Burque just outsource the programming to India.

From what my Senior Leadership says you can pretty much just think about what you want and an army of Indian programmers will bang it out in 10% of the time for 0.1% of the price and it will be totally perfect.

/sarcasm

Funny thing though, all you need is someone who knows how to search the gits, and you can pretty much fork and build anything.
 

nvanprooyen

Moderator
Staff member
Donator
CCS Hall of Fame '19
Joined:
Apr 4, 2011
Posts:
18,757
Liked Posts:
27,291
Location:
Volusia County, FL
My favorite teams
  1. Chicago Bears
@Burque just outsource the programming to India.

From what my Senior Leadership says you can pretty much just think about what you want and an army of Indian programmers will bang it out in 10% of the time for 0.1% of the price and it will be totally perfect.

/sarcasm
I have a funny story about this. Quite some time ago, I was brought into a company in an executive role to help improve e-commerce sales.

They had been working on rebuilding their platform from scratch for over a year, and had like 15-20 Indian devs working on it. The CEO was hell bent on trying to create an outsource team there, that could also take on outside projects. I tried working with them for several months, until I said **** this. After some heated discussions I managed to talk him into letting me bring in my own resources. I got a lot of push back, but ultimately I was like "I'm responsible for revenue, that's why I'm here. I'm not going to be held accountable for things I don't have control over. Let me do this my way, or I'll walk".

So I bring in my guy, someone I'd worked with for years, and an absolutely brilliant C# guy. One of the best devs I've ever worked with. He did the entire project starting out from scratch in 3 months by himself, and things worked flawlessly. Conversion rates and revenue doubled.

Sad part was, the CEO hated both of us after that because he was a narcissist egomaniac. I think he wanted to see us fail, despite the massive positive impact it had on his business.

I did not stay there long.
 

nvanprooyen

Moderator
Staff member
Donator
CCS Hall of Fame '19
Joined:
Apr 4, 2011
Posts:
18,757
Liked Posts:
27,291
Location:
Volusia County, FL
My favorite teams
  1. Chicago Bears
Also @Burque more on the business / product mgmt side of things, I would encourage you to focus on minimal features initially. The stuff that is absolutely required to see if you have something viable, and then iterate from there. A MVP (minimally viable product).

This is a good read on that topic:

 

Ares

CCS Hall of Fame
Donator
CCS Hall of Fame '19
Joined:
Aug 21, 2012
Posts:
42,346
Liked Posts:
35,065
I have a funny story about this. Quite some time ago, I was brought into a company in an executive role to help improve e-commerce sales.

They had been working on rebuilding their platform from scratch for over a year, and had like 15-20 Indian devs working on it. The CEO was hell bent on trying to create an outsource team there, that could also take on outside projects. I tried working with them for several months, until I said **** this. After some heated discussions I managed to talk him into letting me bring in my own resources. I got a lot of push back, but ultimately I was like "I'm responsible for revenue, that's why I'm here. I'm not going to be held accountable for things I don't have control over. Let me do this my way, or I'll walk".

So I bring in my guy, someone I'd worked with for years, and an absolutely brilliant C# guy. One of the best devs I've ever worked with. He did the entire project starting out from scratch in 3 months by himself, and things worked flawlessly. Conversion rates and revenue doubled.

Sad part was, the CEO hated both of us after that because he was a narcissist egomaniac. I think he wanted to see us fail, despite the massive positive impact it had on his business.

I did not stay there long.

There is this obsession with making software engineering one-size-fits-all across the board.

Gotta offshore.

Gotta contract people instead of FTEs.

Gotta outsource as many services as possible.

CEOs and CIOs like blanket strategies that project to cut costs and improve margins, and turn a blind eye to how that strategy tends to lead to internal structure crumbling.

Every tool has a purpose... offshore, contract, outsource, FTE....

Smart/successful executive leadership uses the right tools in the right places rather than issuing blanket directives.
 

nvanprooyen

Moderator
Staff member
Donator
CCS Hall of Fame '19
Joined:
Apr 4, 2011
Posts:
18,757
Liked Posts:
27,291
Location:
Volusia County, FL
My favorite teams
  1. Chicago Bears
There is this obsession with making software engineering one-size-fits-all across the board.

Gotta offshore.

Gotta contract people instead of FTEs.

Gotta outsource as many services as possible.

CEOs and CIOs like blanket strategies that project to cut costs and improve margins, and turn a blind eye to how that strategy tends to lead to internal structure crumbling.

Every tool has a purpose... offshore, contract, outsource, FTE....

Smart/successful executive leadership uses the right tools in the right places rather than issuing blanket directives.
Absolutely. 100%.
 

Burque

Huevos Rancheros
Joined:
Mar 11, 2015
Posts:
16,034
Liked Posts:
9,512
@nvanprooyen @Broc @Ares

Thanks for the information! I really appreciate the feedback and have to consider how this would deploy. I kinda feel like it's most useful as an app on a phone or tablet initially so that kinda settles that route initially because I'm hearing Java is the easiest to learn.

The thing is it doesn't require gps, the camera etc and should be very light in resources to run. Also the MVP concept is something I've never thought of but I think the idea behind this is that it's really not hard to implement. As in a full implementation would be very basic in nature.

I'd leave the advertising out of it immediately and bring that in as a free alternative later if it was desirable. Is that something you'd plan for if you were thinking it was going to be an option down the road?
 

nvanprooyen

Moderator
Staff member
Donator
CCS Hall of Fame '19
Joined:
Apr 4, 2011
Posts:
18,757
Liked Posts:
27,291
Location:
Volusia County, FL
My favorite teams
  1. Chicago Bears
@nvanprooyen @Broc @Ares

Thanks for the information! I really appreciate the feedback and have to consider how this would deploy. I kinda feel like it's most useful as an app on a phone or tablet initially so that kinda settles that route initially because I'm hearing Java is the easiest to learn.

The thing is it doesn't require gps, the camera etc and should be very light in resources to run. Also the MVP concept is something I've never thought of but I think the idea behind this is that it's really not hard to implement. As in a full implementation would be very basic in nature.

I'd leave the advertising out of it immediately and bring that in as a free alternative later if it was desirable. Is that something you'd plan for if you were thinking it was going to be an option down the road?
Figuring out how to add in an advertising model down the line should be relatively trivial. But I'd encourage you to do some deep thinking around the business model, target audience, marketing strategy, unique value proposition, etc.

One parting comment on this - ideas are a dime a dozen. The real opportunity comes from execution; not only in creating a great product, but also from the business end of things. Ideas can be pivoted from, it's all about a systemic approach, perseverance and lots of hard work.
 

KittiesKorner

CCS Donator
Donator
CCS Hall of Fame '20
Joined:
Jan 4, 2011
Posts:
47,822
Liked Posts:
36,711
Location:
Chicago
I love how you all reached consensus here, tonight. I jut wanted to remind everyone that we deserve a tech forum and that my (post-typo issues) were with how IE was reading the File Blob and once I removed the file name parameter, it worked. @Burque this stuff is fun when it works, stressful when it doesn't...but a profitable living (@Omeletpants aside). If we didn't do what we do, what would they sell?
 

Top