Jump to content

New to programming (looking for advice) + laptop for it

Go to solution Solved by riklaunim,

In our company a developer needs a PC (or a laptop) that is quad core i5 or i7, supporting 2 displays, 16 GB or RAM, SSD storage. No dGPU needed in this case. The keyboard is the key component as you will be using it a lot.

 

It should also be relatively quiet so check reviews, don't buy overshrinked laptop as it will easily get loud under load.

hi, im planning on getting a new laptop (i cant get a pc due to i need movility), i need this laptop to be under 1500 usd , as lighter as possible, i was thinking on an asus gl502vm (1060gpu6gb, 1t6700hq, and ssd full hd) or the cheapest new macbook pro 2016, also the zenbook 3 may be an option.

I want to learn to develop apps, also will be used for casualgaming (lol,csgo, and if it can run it bf1 or overwatch).

So which languages for programming and laptop do you guys recommend, i think i can get a laptop that i can upgrade in the future (adding more ram and m.2 storage .

Thank you all in advance for your time and advices.

Link to comment
Share on other sites

Link to post
Share on other sites

firstly, you don't need more for development. I code in php using a chrome book running Linux. Dual core i3 with 2gb of ram. Secondly, what language depends on what apps you want to make.

                     ¸„»°'´¸„»°'´ Vorticalbox `'°«„¸`'°«„¸
`'°«„¸¸„»°'´¸„»°'´`'°«„¸Scientia Potentia est  ¸„»°'´`'°«„¸`'°«„¸¸„»°'´

Link to comment
Share on other sites

Link to post
Share on other sites

The only factors really important for software development (except game dev) are

  • speed of boot drive (any ssd is enough) 
  • number of cores (4 is enough)
  • linux support (no matter what you may thing, at some pint you will probably need it)
  • size of screen (bigger = better), also ratio should be comfortable for you, ultra-wide is usualy not the best choice for coding 
  • ppi of screen (you want sharp text)
Link to comment
Share on other sites

Link to post
Share on other sites

Thank you so the asus will go fine for what i want nd will allow me to do some video rendering ? , also it will replace my pc so ill have really good gaming specs for years since i dont care much about the ultra settings

Link to comment
Share on other sites

Link to post
Share on other sites

47 minutes ago, vorticalbox said:

firstly, you don't need more for development. I code in php using a chrome book running Linux. Dual core i3 with 2gb of ram. Secondly, what language depends on what apps you want to make.

Thank you im planning on financial apps, tax apps and that kind of things that may involve to link bank accounts to operate , make pays, trades and link many data sources, which you reccomend me to start with

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, Pedromv said:

Thank you so the asus will go fine for what i want nd will allow me to do some video rendering ? , also it will replace my pc so ill have really good gaming specs for years since i dont care much about the ultra settings

I don't know how well can it handle continuous load during rendering but same components in a desktop would be more than enough. 

Link to comment
Share on other sites

Link to post
Share on other sites

4 hours ago, Erik Sieghart said:

If my 2015 macbook can handle most of my development tasks, so too can anything else.

 

It has about as much horsepower as a three legged dog.

Yup!  The ultra-thin Macbooks are a joke! xD

Sorry for the mess!  My laptop just went ROG!

"THE ROGUE":  ASUS ROG Zephyrus G15 GA503QR (2021)

  • Ryzen 9 5900HS
  • RTX 3070 Laptop GPU (80W)
  • 24GB DDR4-3200 (8+16)
  • 2TB SK Hynix NVMe (boot) + 2TB Crucial P2 NVMe (games)
  • 90Wh battery + 200W power brick
  • 15.6" 1440p 165Hz IPS Pantone display
  • Logitech G603 mouse + Logitech G733 headset

"Hex": Dell G7 7588 (2018)

  • i7-8750H
  • GTX 1060 Max-Q
  • 16GB DDR4-2666
  • 1TB SK Hynix NVMe (boot) + 2TB Crucial MX500 SATA (games)
  • 56Wh battery + 180W power brick
  • 15.6" 1080p 60Hz IPS display
  • Corsair Harpoon Wireless mouse + Corsair HS70 headset

"Mishiimin": Apple iMac 5K 27" (2017)

  • i7-7700K
  • Radeon Pro 580 8GB (basically a desktop R9 390)
  • 16GB DDR4-2400
  • 2TB SSHD
  • 400W power supply (I think?)
  • 27" 5K 75Hz Retina display
  • Logitech G213 keyboard + Logitech G203 Prodigy mouse

Other tech: Apple iPhone 14 Pro Max 256GB in White, Sennheiser PXC 550-II, Razer Hammerhead earbuds, JBL Tune Flex earbuds, OontZ Angle 3 Ultra, Raspberry Pi 400, Logitech M510 mouse, Redragon S113 keyboard & mouse, Cherry MX Silent Red keyboard, Cooler Master Devastator II keyboard (not in use), Sennheiser HD4.40BT (not in use)

Retired tech: Apple iPhone XR 256GB in Product(RED), Apple iPhone SE 64GB in Space Grey (2016), iPod Nano 7th Gen in Product(RED), Logitech G533 headset, Logitech G930 headset, Apple AirPods Gen 2 and Gen 3

Trash bin (do not buy): Logitech G935 headset, Logitech G933 headset, Cooler Master Devastator II mouse, Razer Atheris mouse, Chinese off-brand earbuds, anything made by Skullcandy

Link to comment
Share on other sites

Link to post
Share on other sites

If you are willing to learn a lot, look into JS - it's very useful, cutting edge, and you can make apps with it easily. You have to learn HTML and CSS besides it.

Link to comment
Share on other sites

Link to post
Share on other sites

Thank you im going to check it, does it need any system specifications ?

Link to comment
Share on other sites

Link to post
Share on other sites

I like the Dell XPS13. Especially the Developer Edition. It comes with Ubuntu, which is my friend.

Link to comment
Share on other sites

Link to post
Share on other sites

20 minutes ago, Emma Nieuwenhuis said:

I like the Dell XPS13. Especially the Developer Edition. It comes with Ubuntu, which is my friend.

Nice. Can you send me a link to it ? , I had  that in my options I'm between zenbook MacBook Pro 2016 asus gl 502vm and the one you mentioned 

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Pedromv said:

Nice. Can you send me a link to it ? , I had  that in my options I'm between zenbook MacBook Pro 2016 asus gl 502vm and the one you mentioned 

http://www.dell.com/us/p/xps-13-9360-laptop/pd?oc=cax13ubuntuh5135&model_id=xps-13-9360-laptop&l=en&s=bsd

http://www.dell.com/us/p/xps-13-9360-laptop/pd?oc=cax13w10ph5158&model_id=xps-13-9360-laptop&l=en&s=bsd

Both the Dev and non-dev versions.

Link to comment
Share on other sites

Link to post
Share on other sites

23 minutes ago, Pedromv said:

Nice. Can you send me a link to it ? , I had  that in my options I'm between zenbook MacBook Pro 2016 asus gl 502vm and the one you mentioned 

Definitely do not get a MacBook. They are overpriced.

Link to comment
Share on other sites

Link to post
Share on other sites

16 minutes ago, Emma Nieuwenhuis said:

Definitely do not get a MacBook. They are overpriced.

And here, we, go.

Link to comment
Share on other sites

Link to post
Share on other sites

11 hours ago, tlhan said:

And here, we, go.

where are we going?

Link to comment
Share on other sites

Link to post
Share on other sites

12 hours ago, tlhan said:

And here, we, go.

17 minutes ago, Emma Nieuwenhuis said:

where are we going?

On a magical journey; a descent into a fanboy war and you triggered it. Well done.

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, Nuluvius said:

On a magical journey; a descent into a fanboy war and you triggered it. Well done.

thanks. i try my best. I am really just speaking the truth. Compare a MacBook to other laptops and you'll see what I mean

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Emma Nieuwenhuis said:

thanks. i try my best. I am really just speaking the truth. Compare a MacBook to other laptops and you'll see what I mean

Oh you don't have to convince me. I have over a decade of professional experience in the field to do that.

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, Nuluvius said:

Oh you don't have to convince me. I have over a decade of professional experience in the field to do that.

okay. great.

Link to comment
Share on other sites

Link to post
Share on other sites

If you are going to school for programming, I high recommend you find a school that uses multiple languages in their curriculum. I transferred from a school that uses Java exclusively into a school that uses C++ exclusively. My GPA took a huge hit, but I honestly feel that I'm a much better programmer because I was forced to get "good" at two languages. If you are teaching yourself I recommend learning C(not C++) first for about a month. (Yes really).

After C, you should think about what kind of career type (or hobby) you want to shoot for. There are THOUSANDS of branches in computer science, and it's impossible to learn them all. In my opinion choosing a trajectory before you get too far can help make you a better professional.

 

Why C first? 

1. It's harder than other languages at first, however if you have roots in C it makes every other language much much much easier to understand.

2. It lets you mess things up without holding your hand. This is important because it teaches you how important memory management and other things that languages hide from you.

3. It will make you a bad-ass, especially in higher level college courses.

 

A few languages to consider after learning C.

 

1. (Android and enterprise development) Java - Java is a highly controversial language in the programming world. A lot of "old school" programmers hate it because you give up control of quite a few things (especially resource allocation) in exchange for basically a dumbed down version of C++.  I learned Java as my first language, so naturally it's my favorite. It's an extremely versatile language because it has its own run time environment which means it can be put on pretty much anything. (Even soda machines use java).

 

2. Python (Learning + Theory + Simple Games) - Python is fun, easy to learn, easy to use, easy to understand. If you want a less stressful coding experience I suggest it. However, not a lot of industry jobs are looking for people with Python listed as their language of choice. MIT courses use python for intro CS classes, so if you want to use their youtube classes, it might be best to start here and pick up C++ or Java later on.

 

3. C++(Game Development) - If you are teaching yourself, PLEASE be careful. There is a metric fuck ton of misinformation about C++ out there. I recommend staying away from youtube videos that aren't from official courses. It's very easy to get going down the path to being a terrible programmer without even knowing it. With that being said, you can pretty much do anything in C++ including break peoples computers. It's easily the most powerful language if given to the right person. 

 

4. C# - I don't use C# very often, but it's been a pretty awesome up and coming language for a while. The syntax is very similar to Java, and I think Apple uses it(not 100% sure on that ) for their phones.

 

There are tons of other languages out there, but these should help get you started in the direction you want to go in. Feel free to pm me if you need help with anything.

CPU: Ryzen 5950X Ram: Corsair Vengeance 32GB DDR4 3600 CL14 | Graphics: GIGABYTE GAMING OC RTX 3090 |  Mobo: GIGABYTE B550 AORUS MASTER | Storage: SEAGATE FIRECUDA 520 2TB PSU: Be Quiet! Dark Power Pro 12 - 1500W | Monitor: Acer Predator XB271HU & LG C1

 

Link to comment
Share on other sites

Link to post
Share on other sites

13 hours ago, Remixt said:

If you are going to school for programming, I high recommend you find a school that uses multiple languages in their curriculum. I transferred from a school that uses Java exclusively into a school that uses C++ exclusively. My GPA took a huge hit, but I honestly feel that I'm a much better programmer because I was forced to get "good" at two languages. If you are teaching yourself I recommend learning C(not C++) first for about a month. (Yes really).

After C, you should think about what kind of career type (or hobby) you want to shoot for. There are THOUSANDS of branches in computer science, and it's impossible to learn them all. In my opinion choosing a trajectory before you get too far can help make you a better professional.

 

Why C first? 

1. It's harder than other languages at first, however if you have roots in C it makes every other language much much much easier to understand.

2. It lets you mess things up without holding your hand. This is important because it teaches you how important memory management and other things that languages hide from you.

3. It will make you a bad-ass, especially in higher level college courses.

 

A few languages to consider after learning C.

 

1. (Android and enterprise development) Java - Java is a highly controversial language in the programming world. A lot of "old school" programmers hate it because you give up control of quite a few things (especially resource allocation) in exchange for basically a dumbed down version of C++.  I learned Java as my first language, so naturally it's my favorite. It's an extremely versatile language because it has its own run time environment which means it can be put on pretty much anything. (Even soda machines use java).

 

2. Python (Learning + Theory + Simple Games) - Python is fun, easy to learn, easy to use, easy to understand. If you want a less stressful coding experience I suggest it. However, not a lot of industry jobs are looking for people with Python listed as their language of choice. MIT courses use python for intro CS classes, so if you want to use their youtube classes, it might be best to start here and pick up C++ or Java later on.

 

3. C++(Game Development) - If you are teaching yourself, PLEASE be careful. There is a metric fuck ton of misinformation about C++ out there. I recommend staying away from youtube videos that aren't from official courses. It's very easy to get going down the path to being a terrible programmer without even knowing it. With that being said, you can pretty much do anything in C++ including break peoples computers. It's easily the most powerful language if given to the right person. 

 

4. C# - I don't use C# very often, but it's been a pretty awesome up and coming language for a while. The syntax is very similar to Java, and I think Apple uses it(not 100% sure on that ) for their phones.

 

There are tons of other languages out there, but these should help get you started in the direction you want to go in. Feel free to pm me if you need help with anything.

Thank you so much , im on my third year of accountant career, i plan to teach myself on desingnin apps related to finance taxes and bussiness,so if i understand it right ill start with c then Java and c# since i think thye will be the ones that will help me more, changing topic which laptop under 1500 usd you think it will be the best for it ? I have a friend going to USA and he will get me the pc because here cost 2.2to 3 times more than there so I'll use this laptop for the next 4 years at least so I need a laptop that can handle future updates , thanks for your advices they been really helpfull.

Link to comment
Share on other sites

Link to post
Share on other sites

8 hours ago, Pedromv said:

Thank you so much , im on my third year of accountant career, i plan to teach myself on desingnin apps related to finance taxes and bussiness,so if i understand it right ill start with c then Java and c# since i think thye will be the ones that will help me more, changing topic which laptop under 1500 usd you think it will be the best for it ? I have a friend going to USA and he will get me the pc because here cost 2.2to 3 times more than there so I'll use this laptop for the next 4 years at least so I need a laptop that can handle future updates , thanks for your advices they been really helpfull.

In my opinion (for programming not for gaming), the laptop specs aren't as important as the aesthetics. I would go to a store and try out a few laptops and see how you like the keyboard, screen resolution, ect... For programming you need a computer that will become invisible while you work, otherwise it can be distracting or down right dabilitating. So you want something that is super comfortable to use, and something that has a higher screen resolution so you aren't scrolling through your code more than looking at it.

 

I personally prefer mechanical keys so I like Asus/Razer gaming laptops as they generally have pretty good build quality. Here is a decent one http://www.newegg.com/Product/Product.aspx?item=N82E16834234298

CPU: Ryzen 5950X Ram: Corsair Vengeance 32GB DDR4 3600 CL14 | Graphics: GIGABYTE GAMING OC RTX 3090 |  Mobo: GIGABYTE B550 AORUS MASTER | Storage: SEAGATE FIRECUDA 520 2TB PSU: Be Quiet! Dark Power Pro 12 - 1500W | Monitor: Acer Predator XB271HU & LG C1

 

Link to comment
Share on other sites

Link to post
Share on other sites

Alright, so you want to learn programming! First of all let me give you a bit of background about myself so you understand that I speak from experience. I've been writing software for 15+ years of my life and I've been doing it professionally for a pretty long time, I know about 15 or more programming languages but I only master about 6, 7 or so. I have 3 degrees in electrical, embedded and software engineering and I would have to agree with @Remixt. Learn C!

 

Why C? I don't believe it is hard. It is actually VERY simple, it is only hard if you learn it after JAVA or other high-level object oriented languages. C shows you exactly how the computer works! You will understand completely how everything is manipulated in memory and how everything works in a program from the second you boot to the second you exit on success or error. Learning C will give you a true appreciation for higher-level languages when you learn them in the future.

 

I personally started with assembly (that's all I had back then when I was growing up), assembly is basically a machine-level language which C compiles to. If you REALLY want to understand how things work, you can pick up assembly on an embedded platform like the Texas Instruments MSP430 or PIC controllers etc. I don't know if I'd recommend starting with assembly, but certainly start with C and if you are curious to know more then dive into assembly and see the true inner workings of a microprocessor.

 

Please, don't start your programming career learning Python, JAVA or C#. Not only you're putting yourself at a GREAT disadvantage, you're also going to drive your future employers nuts! Trust me, I've dealt with and hired so many programmers and engineers that are great in JAVA but do not even understand the efficiency of their code and how it's run.

 

I would recommend this order of learning.

 

C -> Assembly (ONLY if you are curious, skip otherwise) -> C++ (because it comes naturally) -> C# -> JAVA or any other object oriented programming language. Once you've mastered C++, I would imagine that picking up ANY object oriented language would be cake-walk and not a challenge at all. Beyond C#, honestly, it's only a matter of syntax. Once you understand the inner workings of procedural languages and object oriented languages, syntax becomes a matter of looking it up in a reference manual.

 

As far as web development goes, if you strictly want to become a web developer, I still recommend you learn C and C++ as a precursor to JavaScript, PHP and other web technologies. It will help your overall understanding tremendously! Don't just jump into HTML5 and Java right away, yes it's easier to pick up and you can "Google and copy/paste" everything, but again, you will just be hurting yourself in the long run.

 

So, how do you start? Easy! Pick up a project. Yes, I know most people will advise you to go through tutorials and what not. You can look at tutorials if you'd like, but have a project that you're going to work on for an extended amount of time and use that project as a learning experience. For example, when I learned C++ long ago, I decided to write a driver for one of my game controllers from back in the day to work with some random version of Linux (I can't remember which one). But wanting to get it working drove the learning process. The more techniques I learned the better the code looked and functioned. I kept modifying that code as I learned new concepts. Seeing the code change and evolve helped me understand why things are done a certain way in practice and not just in an academic example or tutorial.

 

I personally dislike academia, they tend to not focus on what matters, this is why I recommend you get yourself involved in some hands-on experience (projects). Build something! Screw it up a 1000 times and fix it as you learn the concepts. It's the only way to truly learn programming in my humble opinion.

 

As far as hardware goes, for programming it doesn't matter. Pick a laptop you're comfortable with. Keyboard comfort and ergonomics would be my first priority since you'd be using it religiously. I personally dislike flat keyboards and using them for programming for hours will hurt your wrists eventually (but this is subjective). I know that people LOVE high-resolution displays (4K etc.). For coding however, that's not really preferred honestly. You don't want to be squinting at TINY text on the screen for hours upon hours. I would go for comfort and reliability over specs any day when it comes to software development. It's a job, so just like a truck driver picks the most comfortable driving setup (not the fastest), I do the same with computers geared towards development.

 

Sorry for a long post but I hope it helps! If you have any questions message me!

Link to comment
Share on other sites

Link to post
Share on other sites

@Darkangel86 Awesome post. I agree with pretty much everything. Maybe C was  hard for me to learn because it was my 4th language. It felt so "manual" compared to the other languages. Going backwards is much harder than forward because nothing is quite as intuitive. I also agree with the thing about Java. That's one of the many reasons why people hate it so much. Imo they hate that it's so easy to use that it can make sub-par programmers look like they know what they are doing.

CPU: Ryzen 5950X Ram: Corsair Vengeance 32GB DDR4 3600 CL14 | Graphics: GIGABYTE GAMING OC RTX 3090 |  Mobo: GIGABYTE B550 AORUS MASTER | Storage: SEAGATE FIRECUDA 520 2TB PSU: Be Quiet! Dark Power Pro 12 - 1500W | Monitor: Acer Predator XB271HU & LG C1

 

Link to comment
Share on other sites

Link to post
Share on other sites

15 minutes ago, Remixt said:

@Darkangel86 Awesome post. I agree with pretty much everything. Maybe C was  hard for me to learn because it was my 4th language. It felt so "manual" compared to the other languages. Going backwards is much harder than forward because nothing is quite as intuitive. I also agree with the thing about Java. That's one of the many reasons why people hate it so much. Imo they hate that it's so easy to use that it can make sub-par programmers look like they know what they are doing.

Haha, so true about Java developers. I am not going to fault the language as much as I am going to fault the way the language is taught and how people pick it up. It is POSSIBLE to use Java efficiently if you understand proper programming concepts (resource allocation, time and space complexity, etc.). But, as you mentioned, it's such a forgiving language that "anything goes" and you end up having crappy unstructured spaghetti code that somehow works! When that happens, you get 1) unsustainable software. 2) Code that cannot be maintained. 3) A developer who thinks they've done the right thing (but they didn't) who will continue to do the same crap on their next project and never learn.

 

Who is hurt the most from this? The next developer who has to pick up, fix and maintain that code AND the organization (the employer). Luckily for Java developers, as of right now, they are in-demand, so even if they lose their job or quit, it's fairly easy to get re-hired and to go spread their coding-disease elsewhere. Unfortunately, most recruiters and hiring managers don't really grasp the technical differences between developers. They tend to treat all developers equally if "they fit the mold" (the position they're hiring for).

 

Yeah it will be difficult to step back to C after learning and relying on several higher level object oriented languages! This is why I always advise newcomers to start with C no matter what field of programming they intend to specialize in later.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×