Microsoft and open book certs

Microsoft announced that they will be making some exams open book. You can only use Microsoft Learn (not a search engine) and the Technical Q&A is disabled. There’s a few more restrictions:

  • You will have access to everything in the learn.microsoft.com domain except Q&A and your profile.
  • Extra time will not be added.
  • The exam timer will continue as you search Learn for whatever information you need.
  • This resource is only available on role-based exams, not fundamentals.
  • This resource will be available in the same languages in which the exam is available.

My take

I really like this. I took one certification exam that was open book – the TOGAF part 2. In that exam, you are given a PDF of the TOGAF documentation. It was super helpful as you didn’t have to memorize. You did have to be good (and fast) at looking things up. That makes it important to practice looking things up in the docs.

I think Microsoft Learn is the same. Learning how to look things up fast is a useful skill. I also like that they aren’t allowing it on the fundamental exams. That was like TOGAF part 1. You proved you learned the concepts in part 1 and then got to use the docs in part 2.

Good job Microsoft! This allows testing concepts rather than facts and trivia.

What if Oracle did this

I think it would be nice if Oracle allowed use of the JavaDoc during the exam. You’d still have to learn all the concepts, be good at identifying compiler errors, the output of code etc. But you could look something up if you forgot an API.

taking a free microsoft cert for fun

Microsoft did a promotion this year where you could take a certification exam for free. I took the PL-400: Power Platform Developer exam. My goal was not to pass the exam (and I didn’t). I had three goals

  • Gain a cursory understanding of Power Platform
  • See how Microsoft does certifications
  • Take an exam in an exam center (the last exam I took was an “at home” one so it has been two years since I’ve been in an exam center.). And related: practice taking an exam in an exam setting (the last exam I took was last year; since the next exam I take is likely to be the Java 21 cert, good to practice test taking skills).

I met all of my goals.

How I (didn’t) study

The Microsoft Learn Cloud Skills Challenge had you do a bunch of online modules. I skimmed each one and watched a few of the videos. I did not do any labs. Each module ends with 3-4 multiple choice review questions. I got 0-4 correct on each. I did not take notes. (Remember the goal was a cursory understanding.) I then went on vacation and gave two presentations on completely unrelated topics. So anything that stuck in my head from this was subconscious.

The morning of the exam, I took two 50 question free practice exams from Microsoft….

Free practice tests

I think you can take as many as you want although at some point, you will run out of unique questions. On my second practice test, I was able to identify 20 questions I saw in the first practice test and 28 questions that were new to me. (Yes, I know this doesn’t add up to 50; the other two I don’t remember if I saw.) That’s a pretty good question pool for free.

You can choose whether to check your answer after each question of the practice test. Either way, you get to see all the questions and answers at the end. I choose to check after each one as the purpose of the practice test for me was to load/re-load some info into my head. I did notice that report at the end showing all the questions you answered was not in the same order as I got the questions. (I forgot to check the answers for two and wrote down their numbers to check at the end.)

I got 44% on the first attempt and 54% on the second. (Most, if not all, of my improvement was remembering the answers to the questions both practice exams had in common)

There’s a major caveat with the practice tests. All of them are multiple choice questions. Some are radio buttons and some choose two/three. But none are the “specialized” question types that features heavily on the actual exam.

The exam center

I had been to this exam center before (pre-2020). There’s no drama. You sign some stuff, they take your picture and you putt your stuff in a locker. They hold the key, but let you keep your id/charge card. (I don’t bring my phone with me; so there’s nothing valuable in the locker; just a little cash). I don’t think I’d like this arrangement if I had to bring my phone. But I can walk to the center, so no need for a phone.

Today, I was offered earplugs because there is some construction in the building. I declined; I’m used to noise where I live. The construction was audible, but not loud. They also have headphones which you can use. I didn’t use those either, but they were in arms reach if I changed my mind.

I had to move the monitor closer to me. It started about twice arms length. Too far to read. This was a self service operation.

After the exam, I was handed a printout with my score and other info. In theory, it showed my performance on each section, but that part didn’t print. I was also able to see my score on the computer when I submitted my final answers.

The agreement

You agree to a bunch of the usual stuff about not cheating. You also explicitly agree not to use AI to cheat. I wonder how one would. You already can’t use other windows/devices.

The actual exam

The exam started with 10 survey questions. Six were about your skill level with each of the exam objectives. I wrote novice for all of them. They also asked why you were taking the cert.

Then my real exam began. I was given 100 minutes across all sections. It was divided into three sections. i didn’t know in advance that was going to happen. You can’t switch between sections. Once you submit a section, the answers are locked in.

The first section was a five question case study. There was a lot of reading and switching of tabs for the case study. The idea is you got requirements and constraints and then answered questions in that context. You could switch between the case study text and questions as much as you wanted before submitting the section. While I did not know this format existed on the exam, I enjoyed it.

The second section was a seven question case study. Again a lot of reading. Same idea, different scenario.

The third question was 42 “multiple choice” questions. Of those questions, the last three described a short example and you had to say yes/no for whether each of the three questions gave a solution. For these three questions, you could not mark them as for review/go back and forth. They were single look and done. You could review the other 39 questions as much as you wanted; even after doing the special three.

The practice tests were not representative of the format of the real exam. (The sandbox you can look at is closer so make sure to try that!). Of my 39 “multiple choice” questions, I had

  • 12 single answer/radio button questions
  • 3 multiple answer checkbox questions with two correct answers
  • 2 multiple answer checkbox questions with three correct answers
  • 8 drag and drop questions – you got a few items and had to place them in boxes answering questions; each item could be used zero, one or more time
  • 6 algorithm type questions where you chose the right steps from a list *and* ordered them
  • 8 questions were there were multiple parts to answer – either yes/no or a pull down with three options for each one

Note that not all questions have the same weight! For the checkboxes with 2-3 answers, each correct answer is worth one point; same as the radio buttons.

Why I did better than I expected

I think there were three causes

  • Testing taking strategy – I suspect some strategy on the “more than one point” questions raised my score.
  • Some questions you could answer (or at least narrow the pool of correct answers) from knowledge of other systems. For example, I know when to use a queue, webhook, etc
  • It’s not a percentage. It’s a scaled score based on factors unknown :).

Even with all of that, i’m surprised how close I got to 700.

My thoughts

I like how Microsoft did the exam. it was a fun format and the questions didn’t feel theoretical. I think they did a good job testing knowledge of the topic.

[uberconf 2023] intellij dojo

Dan Hinojosa

For more, see the table of contents


Uses https://github.com/dhinojosa/intellij-dojo-workshop

General

  • Help > Keyboard Shortcuts PDF
  • Goal: get away from mouse
  • I tried to note both windows and mac since I use both. I followed along on Mac live
  • Presentation assistant shows shortcuts used [I used this one]
  • Key Promoter X – reminds you to use plugin [I turned this off; it was super annoying]

New projects

  • Projects typically created outside the IDE so just have to open the project
  • Open new project (or recent projects)
  • Can setup to open from command line by typing “idea .” – Open toolbox (not in IntelliJ; helps with downloading > bolt > settings > tools – shows where command line)

Navigation

  • Command or alt 1 – project menu – start typing name of file to get straight to it. Arrows to go thru nav menu.
  • Command or alt 2 – bookmarks
  • shift escape – close window – ex if have bookmarks open.
  • Command or alt 3 – find window
  • Command or alt 4 – run window
  • Command or alt 5 – debug window
  • Command or alt 6 – problems window “six is to fix”
  • Command or alt 7 – structure window (outline of file)
  • Command or alt 9 – git log
  • Command or alt 0 – commit window
  • Command or alt e – recent files list
  • Command shift e – recent edit locations (within file)
  • Command or control shift F12 – maximize/restore editor

Action keys

  • Command or control shift A – all actions – shows shortcut next to it so can type name and review shortcut
  • control control – run anything within project. type “?” to see what the choice are. ex: run maven test quickly. Also shows recent commands
  • shift shift – search everywhere ex: files, options in ide, even has a calculator

Navigation

  • control (or Alt windows) right/left – didn’t work for me on mac; ctrl tab lets me see tabs and pressing it repeatedly switches between them
  • ctrl F4 (was command w on my machine)

Finding items

  • command o/Ctrl N – go to class (supposed to be o for mac, but n works for me)
  • command shift o/ctrl shift n – go to file
  • command option o/ctrl option n – go to symbol
  • command/ctrl b – go to declaration
  • command/ctrl alt b – go to implementation
  • option/alt f7 – find usages
  • command/ctrl f7 – find in file

TDD Sample

  • command/ctrl n – create new – then choose what want ex: Java class. do again within class and can create test method automatically
  • F2/shift F2 – switch between problems (ex: compiler error). If no errors, says no errors found
  • alt/option enter – context sensitive actions ex: fix error, refactor
  • command/ctrl shift t – toggle between test and code under test
  • ctrl t (mac) ctrl alt shift t (win) – refactor this menu
  • command l – go to line

Formatting

  • command option/control alt l – format all code
  • control alt/option o – organize imports

Selecting code blocks

  • option down/ctrl shift w increase code block selected – ex: line -> section of code -> method -> class
  • option up/ctrl w increase code block selected

Editing

  • command/ctrl backspace – delete line
  • command/ctrl d – duplicate line
  • command/ctrl x – cut line
  • command/ctrl c – copy line
  • command/ctrl v paste line
  • command/ctrl shift v – paste from history; still available even after pasted
  • command/ctrl t – surround block/selection – didn’t work for me on mac
  • command option t/ctrl shift t – surround with – ex: wrap with if/try/etc

Code completion

  • pvsm – generate main method
  • postfix – write. sout or .var or the like at end of line if forgot something at beginning of line and fixes. Can add own with live templates
  • ctrl space – autocomplete
  • ctrl option/alt space – inaccessible members autocomplete; will import at same time
  • ctrl shift space – type sensitive complete – filter autocomplete based on the desired type
  • command/ctrl shift enter – complete statement – ex: add { for if statement
  • command/ctrl p – parameter info – click method and get pop up with the parameters for all overloads. Works when writing code or on filled in code
  • ctrl shift p – type info – useful on a stream to see return type. If ambiguous have to chose which expression from a list first

Moving

  • Command/ctrl shift up or down – move code up or down compared to other code

Docs

  • Ctrl Q – windows, Ctrl J – mac – pop up for docs
  • ctrl shift i win, command y – mac – pop up with source code/implementation. use right/left if multiple matches (ex: levels in hierarchy)
  • alt q windows, ctrl shift q mac – pop up with method name, press again for class. useful in long legacy code

Run/Debug

  • Contextually – main methods, tests , folder of tests etc
  • If create file named http, will run it. Uses specified format to specify get/post, content type, etc – https://www.jetbrains.com/help/idea/http-client-in-product-code-editor.html. Good if don’t need credentials
  • ctrl shift F10 win, ctrl shirt r mac – First time, run and mark context configuration. Like staking a claim
  • shift F10 win, ctrl r mac- run last config
  • alt shift f10 win, ctrl option r mac – mark context
  • Replace d with r for debug versions
  • In debugger, trace current stream chain lets you see each step of a stream and what is there. (click three dots in debugger to see it). Choose flat mode to see everything on one screen

Refactoring

  • ctrl t (mac) ctrl alt shift t (win) – refactor this menu – this one includes all the other refactorings. Including obscure ones like changing a method return type
  • F5 – copy item
  • F6 – move item
  • shift F6 – rename globally
  • command/alt delete – safe delete
  • ctrl alt n – inline
  • command option/ctrl alt m – extract method
  • command option/ctrl alt v – extract variable
  • command option/ctrl alt f – extract field
  • command option/ctrl alt c – extract constant
  • command option/ctrl alt p – extract parameter

Multicursor

  • shift command 8/alt shift insert win – start column selection mode.
  • hold shift down and get multiple cursors at that column
  • alt/option shift click – start multicursor mode – each click gives you a cursor
  • ctrl g mac, alt j windows – next instance of word giving you a cursor for each (select method/class/etc want to match first)
  • ctrl command g mac, alt shift j win – all instances of word giving cursor for each

HTML/XML editing

Version Control

  • Command/Ctrl 0 – changes window
  • Command/Ctrl K – commit
  • Command/Ctrl t – update project
  • command/ctrl shift k – push
  • ctrl v – mac, alt ` windows – version control quick help

Random stuff

  • If reference a closure variable (ex: effectively final variable used in a lambda), variable appears in purple.
  • Presentation mode – don’t need to mess with font manually when present
  • File and Code templates – for commonly used code

Side note

Chrome has a built in QR code generator – share the link and QR is an option

My take

It was good to get practice and learn more shortcuts. Also learned I had my keymap set to mac classic (that explains why some expected shortcuts hadn’t worked; fixed it). I like the windows/mac contrasts. Felt less magical seeing it presented together. (I use both).. Good mix of hands on and watching.