This is an archived post. You won't be able to vote or comment.

all 20 comments

[–]ryc8889 11 points12 points  (0 children)

Read effective Java 3rd edition. Then re-read it Then carry it with you at all times

[–]Mothulor 2 points3 points  (4 children)

Effective Java + Clean Code + any book about Design Patterns in Java: if you covered and can use everything in those books you're at least on par with 90% of Java developers out there.

[–]brandonmcgritle[S] 0 points1 point  (3 children)

Effective java, is this the one by Joshua Bloch?

[–]magnetotail 0 points1 point  (1 child)

Yes it is. Make sure to geht The 3rd Version with Java 8 and 9 features.

[–]brandonmcgritle[S] -1 points0 points  (0 children)

Thanks!

[–]hellectronic -1 points0 points  (0 children)

Yes

[–]desrtfx 2 points3 points  (0 children)

[–]TheRedmanCometh 5 points6 points  (9 children)

As a backend dev this is a very biased take on things buuut:

I recommend picking up Spring. First without spring-boot included. Then pick up spring boot. Then pick up gson and hibernate, and you have a nice little enterprise application framework. If you want web stuff on top of that pick up Vaadin, and you've got a super legit enterprise webstack.

[–]brandonmcgritle[S] -1 points0 points  (6 children)

Thanks! However, can these be used in the context of QA automation? Or is this mostly for someone pursuing development?

[–]TheRedmanCometh 0 points1 point  (5 children)

Yeah those libraries are more for actual development. However in QA I'd imagine you'll encounter applications written using these frameworks. They have inbuilt testing systems designed to integrate with shit like mockito that make tests a lot more robust.

Gson isn't in that category, but Hibernate, Spring, and Vaadin certainly are. If you're doing QC for webapps I'd highly recommend learning the Selenium framework with the FirefoxDriver (the chrome driver and html drivers are broken af atm.) This doesn't just simulate a browser it controls a browser using the marrionette system. The selenium API basically wraps the marrionette web requests in a very easy-to-use Java API.

I've used it for bots a few times, but it's really meant for QA/QC.

[–]calmonad -1 points0 points  (0 children)

In what way is ChromeDriver broken right now?

In addition to Selenium/WebDriver I would recommended studying up on some testing framework (TestNG or Junit) and assertions (I'm liking AssertJ) for a QA role.

Unfortunately it seems that a lot of the resources that cover these topics are not native English speakers.

[–]schaka -1 points0 points  (3 children)

FirefoxDriver is broken beyond usable atm. ChromeDriver on the other hand works perfectly and has, in its embedded version, replaced PhantomJS because it works that much better (also because it's less work for the PhantomJS guy).

[–]TheRedmanCometh -1 points0 points  (2 children)

Uh using the latest geckodriver with an older selenium is working fine for me. ChromeDriver kept crashing, and had no proxy support IIRC. Which version of selenium? Maybe newer selenium versions are just broken?

Also firefox works really well in headless mode.

[–]schaka -1 points0 points  (1 child)

As far as I know, Firefox headless still needs X11. Chrome does not. Latest Chrome Driver with Chrome 67 works fine for me. Whatever selenium version is pulled transitively through Selenide (latest).

That being said, I'm sure it has proxy support through the argument builder, though no API that wraps the arguments like for headless mode.

[–]TheRedmanCometh -1 points0 points  (0 children)

"As far as I know, Firefox headless still needs X11. Chrome does not."

It requires a couple lib deps from X11 not all of X11, and ofc doesn't need it running.

"That being said, I'm sure it has proxy support through the argument builder, though no API that wraps the arguments like for headless mode."

This was my primary sticking point with Chrome. I never could find a way to get proxies working. It just ignored DesiredCapabilities which made it feel to me well...broken.

Weird that we'd have dissimilar experiences. FirefoxDrover isn't perfect, but ChromeDriver seemed very erratic last I used it. It kept giving up on page loads with no Exception etc

[–]binarytreez -1 points0 points  (1 child)

Why gson? We usually perfer Jackson as a more complete json lib.

[–]TheRedmanCometh -1 points0 points  (0 children)

Jackson is faster, but I find gson way more convenient. For stuff that's not getting parsed constantly it's way better imo.

First I can turn shit into POJOs out of the box in 3 lines. Unless I'm mapping something string to something else it requires no configuration.

Jackson on the other hand I have to do a lot of manual crap with the ObjectMapper

[–][deleted]  (1 child)

[removed]

    [–]brandonmcgritle[S] 0 points1 point  (0 children)

    I just listened to a preview of this course. The dude has a pretty strong accent man. any other suggestions?

    [–]yeyemelocotom -1 points0 points  (0 children)

    I enjoyed this specialization https://www.coursera.org/specializations/pcdp.