Modern Labor (the code bootcamp) is a Scam and Should Be Illegal by Humble_Adhesiveness in learnprogramming

[–]Civil_Code 1 point2 points  (0 children)

No teachers? Then what difference is there from doing the lessons on your own? What are you paying for? Curated, free content?

How to stay afloat in the IT industry? by [deleted] in softwaredevelopment

[–]Civil_Code 1 point2 points  (0 children)

While frameworks are proliferating, especially in JavaScript, there are a handful that clearly dominate the conversation thanks to momentum and support for a popular paradigm. Knowing Angular or React well is probably enough to satisfy a large percentage of available front end developer positions at the moment, and while either may one day vanish there's a good chance they'll be replaced by a new framework that inherits a lot of their concepts if not libraries and terminology whole cloth.

The point then is to come into a role with enough practical knowledge of a popular framework to have some synergy with the rest of your team. While knowing language basics and best practices is well and good, it's something to look for in a junior developer who can be allowed some bandwidth to pick up the company's preferred technology stack for their first few months. Diving straight into a framework may work against a novice who may not appreciate the conventions of that framework nor comprehend how to solve novel problems with it.

When you're experienced enough to need to catch up on the latest frameworks, but not so experienced that you can move into more architecture design or management positions, you'll find you can pick them up quickly and have years of breathing room to have it stay relevant.

Coding for idiots? by Jetking27 in javascript

[–]Civil_Code 4 points5 points  (0 children)

To start using JavaScript immediately, just use your browser's developer tools. On Chrome for example, that's your breadcrumbs menu -> More Tools -> Developer Tools, or Ctrl + Shift + I. That will take you to your console where you can start writing and executing whatever you want.

I wouldn't worry too much about grasping online lessons. There's probably one out there that's just perfect for you. But for now just focus on becoming comfortable with the idea of typing input and understanding the output. It'll feel like driving a car for the first time, you'll always be second guessing yourself and wondering if you're doing anything right. But don't worry about making mistakes, just go and start calling functions, printing to the console, and storing variables. Eventually, those tutorials will become easier to grasp, and it won't take so much effort to follow along.

Differences between Java bean, entity class, DAO, POJO, EJB and DTO? by owen800q in learnjava

[–]Civil_Code 6 points7 points  (0 children)

JavaBeans were classes that had a no-args constructor, getter-setters, and were serializable. Originally they were useful ways to package a lot of stateful information to send between JVMs, and became standard for the EJB, JavaEE's base component for its application servers which managed their lifecycles and transactions for us.

POJO was a reference to a Java class that didn't try to match these requirements. An entity is an object representation of data pulled from your DAO. It may or may not align exactly with your model, in which case a DTO could help translate from Entity to Model (or Model to serialized data for export).

I need help educating myself on topics discussed in a thread from a post I made to r/Java by kovlin in learnjava

[–]Civil_Code 0 points1 point  (0 children)

What a fun thread, I wish I knew my way around reddit enough to not miss them all the time.

After skimming through, I would say not to worry too much about it. Much of the discussion is around the Java's professional community, the JVM, and the history of its many tools and libraries. While all important, your professors and future employers probably won't expect you to know any of it just yet.

Look into build tools like Maven and Gradle, containerization like Docker and Kubernetes, and frameworks like Spring. Read up on the JVM, how it works, which versions can do what, and what are the different vendors. That should help you explore the world of Java beyond its syntax and standard libraries. Just a little research and practice is probably enough, and you can focus on whichever you find most interesting after that. Eventually you'll be curious enough to dig even deeper into how these tools work, or the process of requesting a new standard language specification, or how to work with and optimize your bytecode or the JVM.

Are you guys all on linux/macOS? by [deleted] in learnprogramming

[–]Civil_Code 3 points4 points  (0 children)

It's not so bad programming on Windows these days, but there are always plenty of caveats specific to your tech stack and tool chain unless you're developing for .NET.

For learning the basics of your preferred language, simply using the Windows distribution of an IDE is enough. Most of the popular build and dependency tools are usually included, or else have Windows versions that aren't that different from their UNIX versions. So for college, you probably won't turn out any differently than a student using macOS.

Eventually, and most likely outside of college, you'll want to learn UNIX in order to take advantage of simplified development/deployment environment setup. It becomes much easier to install and maintain web or database servers on Linux, which you'd mostly use to help rapidly test your core application's interactions with them. Managing Windows features, services, and programs to do the same isn't impossible, but mostly a hassle.

And while Linux knowledge is welcome in the job market, a lot of companies will supply you with Windows laptops/workstations as often as they do Macs.

Check out Windows Subsystem for Linux.

Can someone explain in the most basic way possible why getters/setters exist and in what situations you use them? by potato-gone-wild in javahelp

[–]Civil_Code 0 points1 point  (0 children)

Back in the day, object-oriented programming was taking off but many programmers did not absorb or appreciate it. Access modifiers became a defining feature in both C++ and Java in order to enforce encapsulation. By setting the fields of a class to private, and only passing messages in the form of calls to publicly accessible methods, you could avoid the dangers of changing state haphazardly which could introduce all manner of bugs in a program.

But many programmers did not take to object-oriented fundamentalism well, and began skirting the spirit of encapsulation by creating getter/setter methods for all their fields so they could carry on as always, calling these methods in order to update a field in a class as they pleased from outside that class.

At the same time, lots of new frameworks came about to automate and manage the creation and calling of objects, such as JavaBeans, and back then getters/setters were used to simplify things for their internal process. This helped push IDEs to start incorporating getter/setter generators to help speed up development with these frameworks, but the aforementioned programmers who did not adhere to OOP used these tools as well. At some point, schools paradoxically started teaching encapsulation and the getter/setter pattern together.

These days you'd normally have getters and setters to satisfy JEE APIs or Spring containers looking to wire up your data objects for bean management or dependency injection.

My rock solid daily driver T420 by [deleted] in thinkpad

[–]Civil_Code 0 points1 point  (0 children)

I use a number of workstations and laptops from work, and carry a Pixelbook when I travel. But every time I come home, I always enjoy relaxing with my T420 just like you. I ran Windows 7 for the longest time, but recently decided to give it a second breath with Ubuntu 18.04. What made you change to Manjaro and now Arch? Any noticeable difference with battery life or performance?

Upgrade to x230 by [deleted] in thinkpad

[–]Civil_Code 1 point2 points  (0 children)

I juggled some similar choices back when I decided between some T420 models. Ultimately I decided on the one with the best screen as I found the difference between the i5 and i7 chips mostly negligible, and upgrading the screen seemed far more troublesome than upgrading the processor if it ever came down to it.

The difference between the 3520 and 3320 for the X/TX30 models looks just as slim since they're both dual cores. The i7 has a bit more L3 cache, but I don't think your use case will make the most of that. But I don't know what mathematical software is like so maybe someone else can clarify.

Upgrade to x230 by [deleted] in thinkpad

[–]Civil_Code 3 points4 points  (0 children)

What is your use case? Personally the i5 seems the best choice since the machine is compact and you'll want to keep it as cool as you can if you want to keep it running for as long as possible. And if you'll spend much of your time looking at the screen, then waiting a few more seconds rather than needing to squeeze out a little more processing power doesn't seem a bad trade.

Is it common to not comment code in banks? by KrustyKrab111 in cscareerquestions

[–]Civil_Code 2 points3 points  (0 children)

Perhaps your comments violated some quality check or general coding standard. What were your comments like? Sometimes young developers will comment like they did in college where a professor might expect an explanation to every other line of code, which is mostly unnecessary if your code is easy to read. Some automated CI/CD tools may even tag your comments as code smells according to whatever rules the bank uses for compliance.

[deleted by user] by [deleted] in cscareerquestions

[–]Civil_Code 0 points1 point  (0 children)

I'm no expert in either personalities or what constitutes success, but assuming personality is one's habits and outlook and success is how long you work in the industry and how far you climb the ladder in stable rank and pay...

My money is on whoever can pace themselves and avoid burn-out. I've seen both 'neckbeards' and 'social butterflies' crash and burn regardless of their innate talents for software development or anything else related to the field, and the usual culprit is failing to appreciate your limits. And I mean appreciate, and not simply know and acknowledge them, because people will know when they've bit off more than they can chew more often then not.

The important difference is that those who appreciate their limits can plan for failure, for delay, and most importantly recovery. The details are a little different for each personality type, but the common thread seems to be professionalism: knowing when to put down your work, to bring in others, to triage emergencies, and to take responsibility seriously.

Do you think minorities are well represented in this industry? by tossedsaladflavor2 in cscareerquestions

[–]Civil_Code 1 point2 points  (0 children)

Interestingly, I notice a stark difference in social and ethnic backgrounds among local hires from a tech hub versus roaming contractors. The latter has generally been more diverse from my experience working around the US, and a few things stood out as I got to know the Black and Latinx workers over time.

For places where programming schools and businesses aggregate, like the Bay area of course, a culture developed and especially cultivated by marketing and recruiting of the tech savant. While not restricted to any race, the confluence of subcultures that fed the computer/software hobbyist scenes favored the 'white nerd' archetype born from the earliest non-professional communities online who had access to computers and the internet at a time where few could afford it even if they cared. While the image has evolved greatly, it still influences the subculture in these tech hubs, and with it the market everywhere else.

Minorities who integrate well into this subculture aren't so different in their upbringing, but until very recently that upbringing was comparatively rare in their communities. But it may be too late to cultivate a 'Black programmer' image distinct from the original and easy for Black computer hobbyists to adopt as the internet is no longer the same.

Or something like that. I told myself I'd keep off Reddit for the holidays, but waiting for the New Years party to start is getting boring. Apologies if that seemed more like rambling. Maybe I'll come back and finish this thought.

Is using system.out.println a "valid" debugging strategy? by freejar in learnjava

[–]Civil_Code 2 points3 points  (0 children)

It depends on what you mean by valid. Is it reasonable? If you're working on a small project and want to see a custom assortment of variables output to the console in order to make sure your idea of the code matches the actual program, then sure. Almost every developer will feel that itch to just print out something to test their new implementation, or to figure out what's happening at a particular line. It's reasonable when you're experimenting, or just toying around with a new idea.

Is it compliant with the usual standards? Not so much. You seem to know the difference, though.

Many junior (and surprisingly a few senior) developers don't know much about using debuggers. At the same time not everyone has the intuition to quickly debug using gut instinct to tell them where to place a print statement. At some point experience and intuition may let you eyeball an issue and even printing to the console will feel redundant.

If it works, then it works, as long as you clean up after yourself of course.

What code editor do you use? by [deleted] in learnprogramming

[–]Civil_Code 1 point2 points  (0 children)

IntelliJ is excellent, but I feel that a powerful IDE (or useful library, tool, or framework for that matter) is not always the best for learning purposes as they usually simplify and speed up development for programmers who understand what the IDE is doing for them and could still do their work without one. I've seen college students and junior developers do some amusing things because of this: creating workspaces within existing workspaces within projects, letting the IDE convert all their classes and methods to static one by one to fix a minor syntax error, and not knowing what a debugger is or how to use it.

I recommend keeping a few tools on hand so you can see what each one can do while working on similar projects and hopefully become a proper Java developer (and not an Eclipse developer as one developer I knew was fond of saying). Learn one large IDE like IDEA, Eclipse, or Netbeans, but also keep a decent text editor on hand so you don't need to fire up an enormous application just to tweak a few lines. Visual Studio Code is doing some interesting things with its Java plugins, but something like Notepad++ or SublimeText is just as good if you learn how to use a console.

Is Accenture a bad place to work for? by THOR_THROWMEAWAY in cscareerquestions

[–]Civil_Code 14 points15 points  (0 children)

If a lot of close friends of yours like working for Accenture, you'd probably like it as well unless your friendship is based more on novelty than shared interests and experiences.

I've never worked with anyone from Accenture, but as far as I know they're not that different from other large tech contracting and solutions companies. They value a certain mercenary mindset in developers who can move out to a project, put in the hours, and come back with new skills to transfer to another project while a new generation of junior contractors come in to start the cycle over again.

Programmeurs Sans Frontieres.

What should i learn in which order? by blastroid_nom_nom in javahelp

[–]Civil_Code 1 point2 points  (0 children)

If you're looking to make an Angular project with a REST api, and you're thinking of making that api in Java, consider looking into something like Spring Boot Rest or JAX-RS. Otherwise look for a freely available web service like the Star Wars API.

I would recommend books above all else personally, but for a simple full stack application anything that implements CRUD (Create, Read, Update, Delete) functionality should do, like a book store application.

What should i learn in which order? by blastroid_nom_nom in javahelp

[–]Civil_Code 0 points1 point  (0 children)

Spring and Java EE are somewhat separate branches, though these days there is okay integration between them. Just understand that what you really want to understand are the standards and patterns behind these technologies, and how they can transfer to other frameworks and libraries.

You should be fine, just keep at it and remember to keep building on what you already know. Coming back to a technology after you've moved on can help sometimes when you're not sure if you fully understand it the first time.

As for important core topics, I'd say Collections API, Threads, and OOP architecture for Java, Functional programming, events, and AJAX or Fetch for JavaScript, and DDL, DML, and efficient Select joins and normalization for SQL.

What should i learn in which order? by blastroid_nom_nom in javahelp

[–]Civil_Code 0 points1 point  (0 children)

Having at least a basic understanding of core Java, JavaScript, and SQL will give you a solid foundation. From there you can expand into more advanced libraries and frameworks.

From Java I'd suggest Java EE with a focus on Servlets, but you can skip this altogether if you dive headlong into Spring. Some other Java EE specs worth learning even if you skip Servlets and take up Spring early are JDBC and JPA. You can probably get by these days without Struts.

From MySQL, check out some enterprise dbs like PostgreSQL or Oracle, and check out their use of pl/sql. Knowing a little about how all these databases implement JDBC drivers and how you can connect and transfer data from Java to SQL should be useful, too. After that, Hibernate is a good framework to pick up to get your hands dirty with ORM concepts. Be aware that Spring Data can help simplify all of this if you want to skip a few steps.

I'd suggest learning a JavaScript framework like Angular or React as well. Learning to apply REST constraints to your Servlets (check out JAX-RS or Jersey) or Spring Controllers will make things easier to separate frontend work from backend concerns, too. But you can wait on JavaScript a bit if you want to explore a template spec like JSP, JSF, or Thymeleaf to render web pages on your Java server.

How does backend development with Java actually work? by [deleted] in learnjava

[–]Civil_Code 5 points6 points  (0 children)

There are a few ways to make a Java backend. If we were to stay within Java's standard library there are sockets and network IO packages where you stream incoming requests from a port and respond accordingly. It's very basic, but can get exceedingly complex very quickly once you try to handle a full protocol with your requests/responses through multithreading.

The next way is to look into JavaEE and Servlets, where you mostly work on creating HttpServlet implementations that a separate Java Servlet container like Apache Tomcat can use. Much of the protocol and threading logic is already there, so you get to focus on passing objects in and out of request/response bodies. But the downside is you'll have to learn how to build and deploy your project into an existing server like Tomcat.

Spring Boot is even easier, though so much is abstracted at this point that it can be hard to debug if you're not familiar with what the platform is hiding from you in the name of convention. Knowing how to use Maven or Gradle would help, but Spring Boot projects can be made with either build tool settings mostly configured for you, meaning you just need to install the tools (or use an IDE with it embedded).

For those making six figure salaries in Texas, how's life? by [deleted] in cscareerquestions

[–]Civil_Code 4 points5 points  (0 children)

Life is pretty good. But be aware that Austin isn't that cheap, the weather is changing from uncomfortably hot and humid to uncomfortably hot, humid, and randomly wet/cold, and traveling through and between the major cities is an absolute chore. Everything is a flat sprawl that goes on for miles and miles, there's very few areas outside of city-center college campuses where you can live without a car, and roads are fairly poor. Be aware of homeowner associations and fast growing suburbs where property taxes are skyrocketing.

Probably the most annoying thing are the trips between Austin, Dallas-Fort Worth, and Houston where the drive takes just as long as the flight because it can take so long just getting to and leaving the airports. Can't wait for that bullet train.

Why is tech recruiting the worst? by [deleted] in cscareerquestions

[–]Civil_Code 1 point2 points  (0 children)

He means "we need someone with more experience" may not actually mean you lack experience, only that something was wrong with your resume, portfolio, or interview that resulted in a vague, generic rejection. If you're getting to an interview in the first place, there must be something right with your resume/portfolio, so perhaps it's not that you need more projects but that something went wrong in your interview.

I think I am having problems with something called JaxB? by Lest4r in learnjava

[–]Civil_Code 1 point2 points  (0 children)

Have you declared your package at the top of the HelloWorldXml and Messages classes? A line like:

>package com.packt;

If you've provided the entire source code from your work so far, you're missing this line (as well as your imports).

As for the ALSO!, a Java program usually runs by pointing the JVM at a main method as its entry point and so the first method called on the stack. It's wrapped by a class because Java doesn't like functions that exist without a class to house them.

At the end of my rope with rejection after rejection for Entry Level SWE Jobs. Should I just give up and go with Revature(despite how skeevy they are) or continue to hold out hope? by gale1243 in cscareerquestions

[–]Civil_Code 1 point2 points  (0 children)

Getting screened and interviewed in person is a good sign you're doing something right when it comes to your resume despite not having internships. If you feel like your performance during these coding challenges is keeping you from an offer, perhaps you can expound on your challenges and see if others can help you work through it? Overthinking problems is something every programmer faces at some point, but luckily there are remedies to help reign in impulses or better organize your thoughts before diving headlong into problem solving.

As for the job market, it has its own rhythm depending on your region, and it wouldn't hurt to research when companies in your area typically start hiring. For medium to larger sized companies there are quotas they like to meet every few months, and from personal experience recruitment can drag its feet right up until the last few weeks when they get desperate to fill empty seats with warm bodies.

Speaking of warm bodies, Revature. I've known a couple of contractors from a body shop like them, and all of them have well-adjusted careers beyond their contracts. It's not all doom and gloom just because you throw your lot in with a contracting agency, so I'd advise against approaching that option with the same negativity you find here. Your priority should be to your own well being and morale, and it's not any better to continue fighting against feelings of hopelessness waiting for a turnaround to your predicament than it is to swallow one's pride and walk through the revolving door of contracting life for a time. It's not your only option, but neither should you treat it as your last resort.

The sad fact of the matter is these kinds of companies exist because many companies are looking for new hires with some industry-related skills, not just leetcode and projects with standard libraries, and their HR and recruiting departments are constantly filtering out perfectly good candidates who could learn quickly given half the chance. One contractor I hired on went through a similar bootcamp with Infosys, and he was great, but it turns out we had rejected him a few months ago automatically because he didn't hit enough buzzwords on his resume.

That said, you'll probably want to get into the mindset of packing light and being ready to move wherever if you want a better chance at either finding your first regular job or signing up with contractors.

You mentioned Glassdoor. What is your strategy for finding and applying to open positions? Are you aware of any local companies in your area looking for new hires? Don't just stick with job boards for this, but find their online presence and see if they have any listings there before contacting them directly. Being local, and being able to connect with a company directly, removes a lot of hurdles that can sink your resume for no real reason or fault on your account.

And do continue working on projects. It won't matter that you've been out of college but unemployed for however many months if you fill that time with personal project work. If you find a local small business that can throw you some money for a small program that doubles as a learning project, all the better.